php - MYSQL错误获取准备语句

标签 php mysql prepared-statement

如何获取 mysqli_stmt 对象的准备语句?

如果在执行 mysql 语句时出现错误,我想返回该语句。

$id = "89c483c8";
$query = "SELECT * FROM database WHERE id = ?";
if (!($stmt = $database->prepare($query) { ... }
else {
    $stmt->bind_param("s", $id);
    if (!$stmt->execute())
         return $stmt->get_statement; //doesn't exist
}

“$stmt->get_statement”当然不行。那么我如何获得完整的查询呢?在这个例子中:

"SELECT * FROM database WHERE id = 89c483c8"

最佳答案

这是捕获 sql 错误的最佳方法:

try {
    $res = $mysqli_instance->query($query);
}catch (mysqli_sql_exception $e) {
    print "Error Code <br>".$e->getCode();
    print "Error Message <br>".$e->getMessage();
    print "Strack Trace <br>".nl2br($e->getTraceAsString());
}

或者最简单的方法:

echo $stmt->error

http://php.net/manual/en/mysqli.error.php

关于php - MYSQL错误获取准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709421/

相关文章:

php - 如何从mysql准备语句中的两个表中选择值

javascript - 推进器集成

php - SQL JOIN vs LIKE(数据存储在行中而不是另一个表中)

MySQL如何插入 '00:65:00'之类的分钟值(大于59分59秒?

mysql - AWS RDS MYSQL SSL 如何工作?

Mysql跨表更新权限问题

php - MYSQL 数据库返回错误计数

php - 如何将sql变成多条语句的事务?

php - 在 mysqli 中循环遍历结果

php - 在 PHP 中使用 echo 后不显示 HTML 元素