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クエリ関数を組み合わせることで、データ操作の柔軟性と効率を大幅に改善できます。