我的数组有一些值
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
答案 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) . ")");