PHP はデータベースを使用してセッションを保存します_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:35:15
オリジナル
1005 人が閲覧しました

PHP はデフォルトでセッションをファイルの形式で保存します。これはファイルスペースのオーバーヘッドが非常に小さい Windows でのみ使用できますが、uinx または liux でファイルシステムを使用する場合は、次のようにファイルスペースのオーバーヘッドが発生します。システムは非常に大規模ですが、多数のユーザーが常にセッションを使用する必要があるため、サーバー全体にパフォーマンスの問題が発生します。 、セッションの一貫性を維持できないため、データベース方式を使用してセッションを保存する必要があります。この方法では、同時に使用されるサーバーの数に関係なく、セッションを 1 つのデータベース サーバーに保存するだけで済みます。セッションは完全に保存されます。実装方法の詳細については、引き続きお読みください。

デフォルトでは、PHP セッションはファイルを使用して保存されます。PHP 設定ファイル php.ini に、session.save_handler="files" のような行が表示されます。これは、セッションの保存にファイルが使用されることを意味します。データベースを使用して保存したい場合は、サポート モードに変更し、名前を session.save_handler="use" に変更する必要があります。ただし、これは、セッションの保存にファイルを使用しないことを意味するだけです。データベースを作成し、データベーステーブルを作成します。
データベースとデータベースのテーブル構造を確立するには、PHP と MySQL の組み合わせが最適なので、名前を変更することもできます。同時に、MySQL にはトランザクション機能がないため、他のデータベースよりも高速ですが、セッション ファイルの保存にはトランザクション処理が必要ないため、より適切に実行することにしました。
データベースの作成 , CREATE DATABASE セッション; テーブル構造の作成 CREATE TABLE session( id CHAR(30) NOT NULL , user CHAR(30) ,PARMIRY BY (id) );
php ファイルの書き込み
http:/ /www.knowsky.com

$con =mysql_connection("127.0.0.1","user" , "pass");
mysql_select_db("session");
function open($save_path, $session_name)
{
return(true);
}

関数 close()
{
return(true);
}

function read($id)
{
if($result = mysql_query("SELECT * FROM session WHERE id=$id"))
{
if($row = mysql_felth_row($result ))
{ return $row[ 「データ」] }

関数 write($id, $sess_data)
{
if($result = mysql_query("UPDATE session SET data=$sess_data WHERE id=$id"))
falseを返す;
}

}

関数 destroy($id)
{
if($result = mysql_query("DELETE * FROM session id=$id"))
}

}

/**********************************************

* 警告 - 必要になります。ここに *

* 種類のガベージ コレクション ルーチンを実装します。  *

********************************************/

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

この記事は急いで書いたものです、何か間違っている点がありましたら、貴重なご意見をお聞かせください。修正は大歓迎です。
aspx">http://blog.csdn.net/eoe2005/archive/2007/02/20/1512131.aspx


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508370.html技術記事 PHP はデフォルトでセッションをファイル形式で保存しますが、これはファイルスペースのオーバーヘッドが非常に小さい Windows でのみ使用できますが、uinx または li を使用する場合は...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!