从对象大于 1 的 json 数据插入到 mysql


Insert to mysql from json data with object more than 1

我有一个这样的json数据

[{"data1":"body1"},{"data1":"body2"}]

我想用这个将data1插入我的数据库

PHP代码:

<?php
$query = mysql_query("INSERT INTO data VALUES('$datadecode')");
?> 

但是数据 json 并不总是 2 个数组,如何将其全部插入我的数据库?

使用 json_decode() 并遍历解码数组。

使用 MySQL 的多行插入。

<?php
$json = '[{"data1":"body1"},{"data1":"body2"}]';
$arr = json_decode($json, TRUE);
if (! empty($arr)) {
 $values = array();
 foreach ($arr as $elem) {
  $values[] = "('". $elem['data1'] ."')";
 }
 if (! empty($values)) {
  $sql = "INSERT INTO data VALUES";
  $sql.= implode(', ', $values);
 }
}
echo $sql;
// Outputs
// INSERT INTO data VALUES('body1'), ('body2')
?>

做这样的事情:

<?php
$json = '[{"data1":"body1"},{"data1":"body2"}]';
$arr = json_decode($json);
if (! empty($arr)) {
    $val = array();
    foreach ($arr as $elem) {
        $val[] = ($elem['data1']);
    }
    $vlaues= implode(', ', $val);
    if (! empty($values))
        $sql = "INSERT INTO data VALUES ('".$val."')";
}
?>

只需使用 json_decode 将 json 解码为数组即可。对于关联数组,使用第二个参数作为 true。

.PHP

$json = '[{"data1":"body1"},{"data1":"body2"}]';
$arr = json_decode($json, true);
echo $datadecode = $arr['0']['data1'];

产品目录:

身体1

现在,您可以将此变量用于查询。