2

PHP の値を配列の形式で db(mysql) に保存したい...

例えば

$a=array{10,20,30,40}; 

この変数$aを、インデックスを使用して配列に格納する方法のように、配列形式で db に格納したいと考えています。

将来、配列値に対して更新または削除操作を実行する必要がある可能性があるため、なぜこれを行いたいのか..

私はこれを行うことが可能であることを知っています...しかし、これを実装する方法がわかりません..

このトピックについて検索しましたが、適切な回答が得られませんでした....

これを行う方法を教えてください...

4

4 に答える 4

2

この種のデータを格納するには、別個のTABLEを作成する必要があります。
対応するレコード ID と実際のデータの 2 つの列で構成されます。

したがって、レコードは次のようになります

rid value
1   10
1   20
1   30
1   40
2   10
2   40
...

このようにして、配列値に基づいてデータを選択するだけでなく、従来の SQL ルーチンを使用して配列値に対して更新または削除操作を実行できます。

これは、PHPサンドボックスではなく、現実の世界で行われる方法です。

ここでの他のすべての答えは明らかに間違っています

于 2013-09-13T07:01:43.610 に答える
2

PHP でjson_encodeを使用してデータベースに保存しないでください。それが最善の方法です。

配列は文字列に変換されて格納されます。データを取得してjson_decodeを使用し、必要に応じて作業を開始します。

例:

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

出力:

{"a":1,"b":2,"c":3,"d":4,"e":5}

于 2013-09-13T06:52:17.983 に答える
-1

これにはシリアル化/シリアル化解除を使用します。次のように使用できます。

MySQL に送信

<?php
    $a = array{10,20,30,40};
    $a = serialize($a);
    // your code here to send it to the mysql
?>

MySQL から取得する

<?php
    // your code here to collect it from mysql
    $a = unserialize($mysql->str);
?>

MySQL のフィールドは TEXT または VARCHAR である必要があります。

よろしく

ブラックボンジュール

于 2013-09-13T06:58:23.080 に答える
-2

いつでも配列をシリアル化して、結果をまたはフィールドに格納し、フェッチVARCHAR後にフィールドのシリアル化TEXTを解除できます。

于 2013-09-13T06:54:04.690 に答える