PHP はデフォルトでセッションをファイルの形式で保存します。これはファイル スペースのオーバーヘッドが非常に小さい Windows でのみ使用できますが、uinx または liux でファイル システムを使用する場合、そのようなファイルのファイル スペース オーバーヘッドは大きくなります。ただし、システムが非常に大規模であるため、多数のユーザーが常にセッション ファイルを作成する必要があり、サーバー全体のパフォーマンスに問題が生じます。この方法では、同時に使用されるサーバーの数に関係なく、セッションを 1 つのデータベース サーバーに保存するだけで済みます。セッションの整合性を保存できます。実装方法の詳細については、読み続けてください。
デフォルトでは、PHP セッションはファイル モードで保存されます。PHP 設定ファイル php.ini に session.save_handler="files" という行があり、これはセッションの保存にファイルを使用することを意味します。セッションを保存するためにデータベースを使用したい場合は、サポート モードに変更し、名前を session.save_handler="use" に変更する必要があります。ただし、これはセッションの保存にファイルを使用しないことを意味するだけです。データベースを作成し、データベースのテーブルを作成します。
データベースとデータベースのテーブル構造を確立するには、PHP と MySQL の組み合わせが最適であるため、例として MySQL を使用します。 MySQL データベースは必要に応じて名前を変更できます。MySQL にはトランザクション機能がないため、他のデータベースに比べて高速です。ただし、セッション ファイルの保存にはトランザクション処理が必要ないため、これを改善することにしました。
データベースの作成 , CREATE DATABASE 'session'; テーブル構造の作成 CREATE TABLE 'session'( id CHAR(30) NOT NULL , 'user 'CHAR(30), data CHAR(3000) ,PARMIRY BY (' id') );
php ファイルの書き込み
$con =mysql_connection("127.0.0.1","user" , "pass");
mysql_select_db(" session");
function open($save_path, $session_name)
{
return(true);
}
function close()
{
return(true) ;
}
function read($id)
{
if($result = mysql_query("SELECT * FROM session WHERE id='$id'"))
{
if($row = mysql_felth_row($result ))
>}
function write($id, $sess_data)
{
if($result = DATE セッション SET データ='$ sess_data' WHERE id='$id'"))
{
return true;
}
else
{
return false;
}
}
function destroy($id)
{
if($result = mysql_query("DELETE * FROM session WHERE id='$id'"))
{
return true;
}
else
{
return false;
}
}
/***********************************************
* 警告 - あなたここでは *
* のようなガベージ コレクション ルーチンを実装する必要があります。 *
********************************************/
function gc($maxlifetime)
{
return true;
}
session_set_save_handler("open" , "close", "read", "write", "destroy", "gc");
session_start();
// に進みます通常セッションを使用します
?>
session_user_start.php として保存します。
これで作業は完了しました。セッションを使用する必要がある限り、session_user_start.php を変更します。このファイルをファイルの最初の行に含める必要があることに注意してください。その後、ファイルのセッションと同じように使用できます。
この記事は急いで書いたものです、何か間違っている点がありましたら、貴重なご意見をお聞かせください。修正は大歓迎です。