1

私の配列にはいくつかの値があります

  0 => '1'
  1 => 'moisturizer'
  2 => 'skincare'

その配列を文字列に変換しようとしていますが、現在使用していますjson_encode

$value = array_shift( $val_ary ); //val_ary is that array
echo json_encode($value); // This will echo my data like

["1","moisturizer","skincare"]

後で、これらの値を mysql db テーブルに挿入したいと思います

mysql_query("INSERT INTO TABLE (sno, type, category)
VALUES ('json_encode($value)')");

これは機能するはずですか?

それともjson_decode、db に挿入する前にしますか?

4

3 に答える 3

3

json_encode(array)json 文字列を返しますが、MySQL 挿入の値は (value1,value2,...) にする必要があります。json_decode(json_string)配列を返し、implode配列オブジェクトを区切る「,」で配列の断片を接着します。DB に挿入するだけであれば、json に変換する必要はありません。通常、json は、ページ/サーバー間で情報を渡したり (AJAX 呼び出しなど)、配列を文字列として DB に保存したりするために使用されます。

データをjsonとして取得する場合:

$value = json_encode(array(value1,value2,...))

行う

mysql_query("INSERT INTO TABLE (sno, type, category) 
    VALUES ('".implode(",",json_decode($value))."')");

データを配列として取得する場合:

$value = array(value1,value2,...)

行う

mysql_query("INSERT INTO TABLE (sno, type, category) 
    VALUES ('".implode(",",$value)."')");
于 2012-12-06T15:36:25.730 に答える
0

ここでは JSON は必要ないと思います。あなたはこれらを試すことができます、

$arr = array(0 => '1', 1 => 'moisturizer', 2 => 'skincare');
mysql_query("INSERT INTO TABLE (sno, type, category) VALUES ('{$arr[0]}', '{$arr[1]}', '{$arr[2]}')");

配列が多次元の場合、foreachループを使用してデータを挿入できます。

$values = array();
foreach($arr as $k=>$v){
   $values[] = "('{$v[0]}', '{$v[1]}', '{$v[2]}')";
}
mysql_query("INSERT INTO TABLE (sno, type, category) VALUES ".implode(',', $values));

注: mysql_* 関数は使用しないでください。これらは間もなく非推奨になります。代わりに、PDO または MySqli 関数を使用してください。

于 2012-12-06T15:50:46.060 に答える
0

JSON は、データを文字列として表現する方法です。主にデータの転送に使用されます。

JSON はここでは使用できませんimplode。データだけであり、クエリで使用します。

mysql_query("INSERT INTO TABLE (sno, type, category) VALUES ".
    "(" . implode(",", $value) . ")");
于 2012-12-06T15:51:58.620 に答える