我尝试将数组插入我的数据库。但在此之前我输了一个错误:
Call to undefined method mysqli::mysqli_escape_string()
我的代码如下:
if(!empty($img_src)){
$img_src = $db->mysqli_escape_string(serialize($img_src));
$stmt2 = $db->prepare("INSERT INTO photo_upload(`post_id`,`img_src`) VALUES (?,?)");
$stmt2->bind_param('is', mysqli_insert_id($db),$img_src);
$stmt2->execute();
}
答案 0 :(得分:2)
应为real_escape_string
,
$img_src = serialize($img_src);
$img_src = $db->real_escape_string($img_src);
答案 1 :(得分:0)
如果您将$img_src
与bind_param
一起使用,则无需转义mysqli_insert_id($db)
。您还必须将bind_param
保存到变量中以在$db->insert_id
中使用它,因为第一个之后的所有参数都通过引用传递。或者只使用if(!empty($img_src)){
$img_src = serialize($img_src);
$stmt2 = $db->prepare("INSERT INTO photo_upload(`post_id`,`img_src`) VALUES (?,?)");
if (!$stmt2) {
throw new Exception($db->error, $db->errno);
}
$stmt2->bind_param('is', $db->insert_id, $img_src);
if (!$stmt2->execute()) {
throw new Exception($stmt2->error, $stmt2->errno);
}
}
...
{{1}}