【问题标题】:MYSQL Error Get Prepared StatementMYSQL 错误获取准备好的语句
【发布时间】:2017-08-16 09:07:32
【问题描述】:

如何获取mysqli_stmt-object的prepared statement?

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

$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"

【问题讨论】:

标签: php mysql prepared-statement


【解决方案1】:

这是捕获 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 2011-09-16
    • 2019-11-04
    • 2014-06-18
    相关资源
    最近更新 更多