私は、カスタムセッションハンドラを使用してセッションデータをMySQLデータベースに保存しようとしています。 「mysql_close():指定された引数が有効なMySQL-Linkリソースではありません
function _open(){
global $_sess_db;
$_sess_db = mysql_connect("localhost", "root", "******");
if ($_sess_db) {
return mysql_select_db('style', $_sess_db);
}
return false;
}
function _close(){
global $_sess_db;
return mysql_close($_sess_db); //error happens here
}
エラーメッセージの全文は、最終的には最終的にポイント:私はhereからもらった私が使用しているコードを、ここで
mysql_close(): supplied argument is not a valid MySQL-Link resource
だ:しかし、私は次の警告を得続けますreturn mysql_close($ _ sess_db); "ライン。私はmysql_connect情報が実際に動作することを確認できます。残りのセッションハンドラ関数も定義しています。
また、実際にはセッションハンドラ関数を呼び出すことなく、ページロード時にすぐにこれらのエラーが発生します。
これに加えて、複数のデータベースを使用していない場合は、引数を渡さなかった場合に最後に開かれた接続を自動的に閉じるので、閉じるDB接続を指定する必要はありません。 – dqhendricks
また、スクリプトの最後に非永続データベース接続が自動的に閉じられるため、プロジェクトによってはDB接続を閉じる必要がない場合もあります。 – dqhendricks
うん、可変スコープが問題でした。私はもはやそのエラーを取得していません。しかし、セッションを開始した後、私は$ _SESSION ['uid'] = 4を実行しようとしています。しかし、これはデータベースに反映されていません。 session_write関数を定義したので、そのカスタム関数は$ _SESSION ['uid'] = ... rightのために使用されるはずです。その場合、私のカスタムハンドラ関数に問題はありますか? – maxedison