0

以下代码在准备时失败:

$query = "UPDATE `table` SET `col` = ? WHERE `id` = ?";
if (!($stmt = $mysqli->prepare($query))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
//^^^ PREPARE fails
$stmt->bind_param("si", $val,$id);
if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

我明白了: 警告:mysqli::prepare() [mysqli.prepare]: Couldn't fetch mysqli ...我在上面的代码中做错了什么?我检查了语法文档,但如果我尝试将查询作为 sql 传递,我会收到语法错误。mysqli语法错误有没有好的调试工具?

4

1 回答 1

-1

您可以执行以下操作。

try{
$dbh = new PDO('mysql:host=localhost;dbname=database_name', $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$query = $dbh->prepare("UPDATE table SET col= ? WHERE id= ?");
$query->bindParam(1, $val);
$query->bindParam(2, $id);
$query->execute();

if (!$query)
 {
  echo "Execution failed";
 }
$query = null;
$dbh = null;
}catch (Exception $ex){
 echo $ex;
}

希望这对你有用。

于 2013-12-02T16:03:17.680 回答