ホームページ > データベース > mysql チュートリアル > PHP 配列をリレーショナル データベースに保存および管理するにはどうすればよいですか?

PHP 配列をリレーショナル データベースに保存および管理するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-09 05:17:16
オリジナル
411 人が閲覧しました

How Should I Store and Manage PHP Arrays in a Relational Database?

ベスト プラクティス: リレーショナル データ ストレージと PHP 配列の処理

単一の MySQL フィールド内に配列を格納することは、通常推奨されません。代わりに、データ モデルを分析し、それに応じて再構築することをお勧めします。ただし、配列を 1 つのフィールドに保存する必要がある場合は、次のオプションを検討してください:

シリアル化とアンシリアル化:

serialize() および unserialize() PHP の使用関数は配列を文字列に変換し、MySQL フィールドに保存できます。ただし、配列内の特定のコンテンツに対してクエリを実行することはできません。

JSON エンコードとデコード:

あるいは、json_encode() を使用することもできます。および json_decode() 関数。これらの関数は、データをシリアル化およびシリアル化解除するための、より現代的で構造化されたアプローチを提供します。

次の配列について考えてみましょう:

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);
ログイン後にコピー

データベースのストレージと操作を最適化するには、データ モデルを再構築する必要があります。配列内のキーと値のペアごとに個別の列を含むテーブルを作成します。たとえば、

DROP TABLE IF EXISTS test;
CREATE TABLE test (
    id         INTEGER UNSIGNED NOT NULL,
    a          INTEGER UNSIGNED NOT NULL,
    b          INTEGER UNSIGNED NOT NULL,
    c          INTEGER UNSIGNED NOT NULL,
    PRIMARY KEY (id)
);
ログイン後にコピー

PHP 関数を使用してデータベースと対話できます。

// Connect to the database
$c = mysql_connect($server, $username, $password);
mysql_select_db('test');

// Example functions to interact with the database
function getTest() {
    $ret = array();
    $query = 'SELECT * FROM test';
    $r = mysql_query($query,$c);
    while ($o = mysql_fetch_array($r,MYSQL_ASSOC)) {
        $ret[array_shift($o)] = $o;
    }
    mysql_close($c);
    return $ret;
}

function putTest($t) {
    foreach ($t as $k => $v) {
        $query = "INSERT INTO test (id,".
                implode(',',array_keys($v)).
                ") VALUES ($k,".
                implode(',',$v).
            ")";
        $r = mysql_query($query,$c);
    }
    mysql_close($c);
}

// Insert the array into the database
putTest($a);

// Retrieve the data from the database
$b = getTest();
ログイン後にコピー

を採用することで、リレーショナル データ モデルを使用すると、データの効率的なストレージ、クエリ、操作を確保できます。

以上がPHP 配列をリレーショナル データベースに保存および管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート