Web開発プロセス中に、構造化されたデータをJSON形式で保存し、データベースに書き込む必要があることがよくあります。 MySQLは、バージョン5.7以降、JSONタイプをネイティブにサポートしています。これにより、PHPを使用するとJSON形式のデータをより効率的に保存および管理できます。
まず、JSONフィールドを含むデータテーブルを作成する必要があります。以下は、単純なデータテーブル構造です。
テーブルの作成 `json_data_table`( `id` int(11)null auto_incrementではありません、 `json_data` json not null、 ホストキー( `id`) );
ここでは、MySQLのJSONデータ型を使用します。これにより、保存されたデータ構造が合法的なJSON形式であるかどうかを自動的に確認できます。
PHPのMySQLI拡張機能を通じて、データベース接続を簡単に実装できます。
<?php $host = "localhost"; $user = "root"; $password = ""; $database = "test"; $conn = new mysqli($host, $user, $password, $database); if ($conn-> connect_error){ die( "接続失敗:"。$ conn-> connect_error); } ?>
次に、PHPの配列をJSON文字列に変換し、データベースに書き込みます。
<?php $data = array( 'name' => 「ジョン」、 「年齢」=> 25 ); $ jsondata = json_encode($ data); $ sql = "json_data_table(json_data)values( '$ jsondata')"; if($ conn-> query($ sql)=== true){ エコー「JSONデータが普通に追加されました」。 } それ以外 { エコー「エラー:」。 $ sql。 「<br> "。$ conn-> error; } $ conn-> close(); ?>
注:JSONデータをSQLステートメントに直接スプライシングすると、SQL注入リスクが発生する可能性があり、挿入に前処理ステートメントを使用することをお勧めします。
以前に保存されていたJSONデータをデータベースから読み取り、PHPアレイに変換する必要がある場合:
<?php $sql = "SELECT json_data FROM json_data_table WHERE id = 1"; $result = $conn->クエリ($ sql); if($ result-> num_rows> 0){ while($ row = $ result-> fetch_assoc()){ $ jsondata = $ row ['json_data']; $ data = json_decode($ jsondata、true); echo "name:"。 $ data ['name']。 「<br> "; エコー「年齢:」。 $ data ['age']。 「<br> "; } } それ以外 { エコー「データなし」; } $ conn-> close(); ?>
json_decode関数を使用して、2番目のパラメーターをtrueに渡すと、json文字列を連想配列に解析して、後続の処理を容易にすることができます。
この記事では、PHPを使用してMySQLと協力してJSON形式のデータを保存および読み取る方法について説明します。テーブル構造の設計、データベース接続、JSONデータ挿入、解析まで、完全な実装プロセスが実証されています。実際のプロジェクトでは、JSONフィールドとMySQLクエリ関数を組み合わせることで、データ操作の柔軟性と効率を大幅に改善できます。