db中的json_encode(数组)插入

时间:2012-12-06 15:34:31

标签: php mysql arrays json insert

我的数组有一些值

  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数据库表中插入这些值

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

这应该有用吗?

或者在插入db?

之前我应该​​json_decode

3 个答案:

答案 0 :(得分:2)

json_encode(array)返回一个json字符串,而MySQL insert的值应为(value1,value2,...)。 json_decode(json_string)返回一个数组,implode用“,”分隔数组对象来粘贴数组。如果您唯一要做的就是将其插入数据库,则无需将其转换为json。通常json用于在页面/服务器之间传递信息(例如AJAX调用)或将数组保存为数据库中的字符串

如果您获取数据为json:

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

DO

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)."')");

答案 1 :(得分: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功能。

答案 2 :(得分:0)

JSON是一种将数据表示为字符串的方法。它主要用于传输数据。

JSON在这里没有位置,只有implode数据,并在查询中使用它。

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