调用未定义的方法mysqli :: mysqli_escape_string()

时间:2014-03-04 06:16:41

标签: php mysqli undefined mysql-real-escape-string

我尝试将数组插入我的数据库。但在此之前我输了一个错误:

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();
}

2 个答案:

答案 0 :(得分:2)

应为real_escape_string

$img_src = serialize($img_src);
$img_src = $db->real_escape_string($img_src);

Reference

答案 1 :(得分:0)

如果您将$img_srcbind_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}}