PHP はデータベースを使用してセッションを保存します

WBOY
リリース: 2016-06-21 09:00:38
オリジナル
929 人が閲覧しました

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 を変更します。このファイルをファイルの最初の行に含める必要があることに注意してください。その後、ファイルのセッションと同じように使用できます。

この記事は急いで書いたものです、何か間違っている点がありましたら、貴重なご意見をお聞かせください。修正は大歓迎です。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート