我尝试更新mysql
表并将json
数组插入到一列(当前包含json数组)中。
这是我试图运行的内容:
$array = ['key1' => 'val1', 'key2' => 'val2'];
$array = json_encode($array);
// ...some time later:
$mysqli->query("UPDATE table_name SET colname={$array} WHERE somecol=someval");
当我使用INSERT时,这种结构工作正常。关于为什么这不适用于UPDATE/SET
?
答案 0 :(得分:3)
SQL到达数据库时可能搞砸了。 你使用它的方式违背了使用mysqli的目的。
生成的查询如下所示:
UPDATE table_name SET colname = {“key1”:“val1”,“key2”:“val2”} WHERE somecol = someval
由于缺少单引号,插入不起作用。
建议的方法如下:
注意:强>
示例:强>
$sql = 'UPDATE table_name SET colname=? WHERE somecol=someval';
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s', $someValue);
$stmt->execute();
答案 1 :(得分:-1)
此colname列,看看它是否像字符串一样使用:
$mysqli->query("UPDATE table_name SET colname='{$array}' WHERE somecol='someval'");