php - json_encode(array) 插入数据库

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

这应该行得通吗?

或者我应该在插入数据库之前json_decode吗?

最佳答案

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

如果您获取的数据为 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)."')");

关于php - json_encode(array) 插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13747042/

相关文章:

php - 未找到laravel api路由但存在于路由列表中

MySQL:将 REPLACE 与 JOIN 一起使用?

c - sizeof() 如何通过引用参数传递

c - 使用 C 打印指向字符串的指针数组,省略最后一个字符串

c - 用 C 语言解决迷宫问题并打印正确路径

javascript - 将 php 数组传递给 javascript,检查数组值并插入新数组

ubuntu 中的 PHP 扩展路径

php 从字符串中删除 "-"重复项

php - 将多个条目插入一列

php - Doctrine 和 DateTime 显示出错误的差异