現在の位置: ホーム> 最新記事一覧> JSONデータをMySQLデータベースに保存する方法

JSONデータをMySQLデータベースに保存する方法

M66 2025-07-10

PHPがJSONデータをMySQLに保存するアプリケーションシナリオ

Web開発プロセス中に、構造化されたデータをJSON形式で保存し、データベースに書き込む必要があることがよくあります。 MySQLは、バージョン5.7以降、JSONタイプをネイティブにサポートしています。これにより、PHPを使用するとJSON形式のデータをより効率的に保存および管理できます。

JSONを保存するためのMySQLデータテーブルを作成します

まず、JSONフィールドを含むデータテーブルを作成する必要があります。以下は、単純なデータテーブル構造です。

テーブルの作成 `json_data_table`(
  `id` int(11)null auto_incrementではありません、
  `json_data` json not null、
  ホストキー( `id`)
);

ここでは、MySQLのJSONデータ型を使用します。これにより、保存されたデータ構造が合法的なJSON形式であるかどうかを自動的に確認できます。

PHPを使用してMySQLデータベースに接続します

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データをMySQLに書き込みます

次に、PHPの配列をJSON文字列に変換し、データベースに書き込みます。

<?php
$data = array(
    'name' => 「ジョン」、
    「年齢」=> 25
);

$ jsondata = json_encode($ data);
$ sql = "json_data_table(json_data)values( &#39;$ jsondata&#39;)";

if($ conn-> query($ sql)=== true){
    エコー「JSONデータが普通に追加されました」。
} それ以外 {
    エコー「エラー:」。 $ sql。 「<br> "。$ conn-> error;
}

$ conn-> close();
?>

注:JSONデータをSQLステートメントに直接スプライシングすると、SQL注入リスクが発生する可能性があり、挿入に前処理ステートメントを使用することをお勧めします。

MySQLからJSONデータを読み取り、解析します

以前に保存されていた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 [&#39;json_data&#39;];
        $ data = json_decode($ jsondata、true);

        echo "name:"。 $ data [&#39;name&#39;]。 「<br> ";
        エコー「年齢:」。 $ data [&#39;age&#39;]。 「<br> ";
    }
} それ以外 {
    エコー「データなし」;
}

$ conn-> close();
?>

json_decode関数を使用して、2番目のパラメーターをtrueに渡すと、json文字列を連想配列に解析して、後続の処理を容易にすることができます。

要約します

この記事では、PHPを使用してMySQLと協力してJSON形式のデータを保存および読み取る方法について説明します。テーブル構造の設計、データベース接続、JSONデータ挿入、解析まで、完全な実装プロセスが実証されています。実際のプロジェクトでは、JSONフィールドとMySQLクエリ関数を組み合わせることで、データ操作の柔軟性と効率を大幅に改善できます。