ホームページ  >  記事  >  バックエンド開発  >  PHPはMySQLを使ってセッションを保存する方法を実装しています、mysqlsession_PHPチュートリアル

PHPはMySQLを使ってセッションを保存する方法を実装しています、mysqlsession_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:20:13785ブラウズ

PHPはMySQLを使ってセッションを保存するメソッドmysqlsessionを実装しています

セッションは、ユーザー情報を保存するために PHP プログラミングでサーバーによって使用される変数であり、非常に広範囲のアプリケーション値を持ちます。この記事の例では、PHP が MySQL を使用してセッションを保存する方法について説明します。参考のためにみんなで共有してください。具体的な手順は以下の通りです:

この記事の例の実装環境は次のとおりです:

PHP 5.4.24
MySQL 5.6.19
OS X 10.9.4/Apache 2.2.26

1. コード部分

1.SQL ステートメント:

リーリー

2.PHP パーツコード:

リーリー

2. はじめに

1. MySQL を使用してセッションを保存する場合、セッション ID、セッション データ、セッションの有効期間という 3 つの主要なデータを保存する必要があります。

2. セッションの使用方法を考慮すると、InnoDB エンジンを使用する必要はなく、より優れたパフォーマンスを実現できます。環境が許せば、MEMORY エンジンの使用を試すことができます。

3. セッション データを保存する列には、必要に応じて utf8 または utf8mb4 文字セットを使用できますが、通常は、ASCII 文字セットを使用できます。保管コストを節約します。

4. セッションのライフサイクルを保存する列は、プロジェクトのニーズに応じて設計できます。たとえば、日時型、タイムスタンプ型、int 型などです。 datetime 型および int 型の場合、セッションの生成時刻または有効期限を保存できます。

5. 必要に応じて、セッション テーブルの列を拡張し、読み取りおよび書き込み関数を変更して、ユーザー名などの情報を保存するための関連する列をサポート (維持) できます。

6. 現在のバージョンでは、session_set_save_handler を介してカスタム セッション メンテナンス関数を登録するだけで済み、その前に session_module_name('user') 関数を使用する必要はありません。

7. read 関数がデータを取得して返すとき、PHP は自動的にデータを変更しないでください。

8. PHP が write 関数に渡す日付パラメータは、シリアル化後のセッション データです。通常はデータを変更しないでください。

9. このコードのロジックによれば、PHP 構成オプションのセッション有効期間設定はそれ自体で維持でき、必ずしも get_cfg_var を通じて取得する必要はありません。

10.sessionMysqlId() 関数は、多数のユーザーと複数の Web サーバーが存在する場合に衝突を回避するためのもので、通常、PHP によって自動的に生成されるセッション ID はユーザーの要件を満たすことができます。

3. 需要

ユーザーの数が非常に多く、アプリケーションを提供するために複数のサーバーが必要な場合、MySQL を使用してセッションを保存すると、セッション ファイルを使用するよりも一定の利点があります。たとえば、ストレージのオーバーヘッドが最小限に抑えられ、ファイル共有による複雑さを回避でき、衝突をより適切に回避でき、セッション ファイル共有よりもパフォーマンスが優れています。一般に、アクセス数が急激に増加すると、データベースを使用してセッションを保存することによって発生する問題が直線的に増加すると、セッション ファイルの使用によって発生する問題はほぼ爆発的に増加します。さて、もっと簡単に言ってみましょう: アプリケーションのユーザー数が少ない場合は、実際には PHP にセッションを単独で処理させることができます。MySQL を考慮する必要はありません。

4. 参照機能と概念:

1 http://cn2.php.net/manual/zh/function.session-set-save-handler.php

2 http://cn2.php.net/manual/zh/session.idpassing.php

3 http://cn2.php.net/manual/zh/pdo.connections.php
4 http://cn2.php.net/manual/zh/pdo.prepared-statements.php
5 http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert

この記事で説明した例が PHP プログラミングのすべての人に役立つことを願っています。

メンバーログインシステムの作り方(MySQLではなくphpセッションを使用し、ユーザー情報を保存するためにTXTファイルを使用)

この問題に対しては、配列ストレージを使用し、最終的に複数文字列操作である分離された文字列に出力できます。
サンプルコードをお送りします。



PHPのセッション保存の問題

php はデフォルトでセッションをファイル形式で保存します。これはファイルスペースのオーバーヘッドが非常に小さい Windows でのみ使用できますが、uinx または liux でファイルシステムを使用する場合は、次のようにファイルシステムのファイルスペースオーバーヘッドが発生します。ただし、セッションは常に使用する必要があるため、サーバー全体にパフォーマンスの問題が発生します。この方法では、セッションの一貫性を維持できないため、データベース メソッドを使用してセッションを保存する必要があります。この方法では、同時に使用されるサーバーの数に関係なく、セッションを 1 つのデータベース サーバーに保存できます。セッションは完了しました。実装方法の詳細については、読み続けてください。
デフォルトでは、PHP セッションはファイルを使用して保存されます。PHP 設定ファイル php.ini, session.save_handler="files" に次のような行が表示されます。これは、セッションの保存にファイルが使用されることを意味します。データベースを使用して保存したい場合は、ユーザー モードに変更し、名前を session.save_handler="use" に変更する必要があります。ただし、これは、セッションの保存にファイルを使用しないことを意味するだけです。また、データベースを選択する必要もあります。 . データベーステーブルを作成します。
データベースとデータベースのテーブル構造を確立するには、PHP と MySQL の組み合わせが最適なので、PHP で使用できるデータベースを使用できます。もちろん、名前は変更できます。同時に、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 ))
{ return $row["data"]; }
}
else
{
return "";
}
}
function write( $id, $sess_data)
{
if($result = mysql_query("UPDATE session SET data='$sess_data...残りのテキスト>>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/868231.html技術記事 PHP は、MySQL を使用してセッションを保存する方法を実装しています。 Mysqlsession session は、PHP プログラミングでユーザー情報を保存するためにサーバーによって使用される変数であり、非常に幅広いアプリケーション値を持っています。この記事は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。