MySQL を使用して PHP セッションを開始する

WBOY
リリース: 2016-06-21 08:57:45
オリジナル
1063 人が閲覧しました

デフォルトでは、PHP セッションはファイルを通じて保存されます。これには次のような欠点があります。

セッション ファイルは通常小さいですが、ファイル システムにそのような小さいファイルを多数保存することはスペースの無駄であり、非効率的です。

分散サイトでは、セッション ファイルを使用してセッションを共有するのは困難です。

セッション ファイル方式では、オンライン ユーザーのセッション情報をカウントできません。

上記の問題を解決するには、データベースを使用してセッション情報を保存することが考えられます。

PHP 開発の場合、MySQL を使用してセッションを保存することは非常に良い選択です。 MySQL では、メモリに組み込まれたテーブル タイプのヒープが提供されています。セッションあたりのデータ量が少ない場合は、このタイプのテーブルを使用してパフォーマンスをさらに最適化することを検討できます。ただし、ヒープ タイプのテーブルにはテキスト タイプのフィールドがサポートされていないなど、多くの制限があるため、セッション データ レコードの長さを予測できない場合は、トランザクションを持たない MyISAM タイプのテーブルを選択する方が適切です。ディスクベースのテーブルの処理オーバーヘッドにより、最適なパフォーマンスが得られます。

セッション テーブルの構造は次のとおりです。

DROP TABLE IF EXISTS `sessions`;<br>CREATE TABLE `sessions` (<br> `session_id` varchar(32) NOT NULL default '',<br> `user_id` int(10) unsigned NOT NULL default '0',<br> `data_value` text NOT NULL,<br> `last_visit` timestamp(14) NOT NULL,<br> PRIMARY KEY (`session_id`),<br> KEY `user_id` (`user_id`)<br>) TYPE=MyISAM;

PHP はユーザー セッション モジュールをサポートしており、session_set_save_handler を通じてカスタム セッション処理関数を設定できます。デフォルトの処理モジュールはファイルであるため、session_set_save_handler でセッション処理関数を設定する前に、session_module_name('user') を使用してユーザー セッション モジュールを使用するように PHP に指示する必要があり、session_set_save_handler は session_start の前に実行する必要があります。



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