如果mysql_query()失败,该怎么办?

Woh*_*ell 9 php mysql security

有时会发生这样的情况:mysql_query()无法插入数据并且我不知道它.所以,问题是我怎么知道它何时发生?

Pas*_*TIN 9

引用以下文档页面mysql_query:

对于SELECT,SHOW,DESCRIBE,EXPLAIN 等语句返回的结果集,mysql_query()返回 resource成功,或FALSE在错误.

对于其他类型的SQL语句, INSERT,UPDATE,DELETE,DROP,等, mysql_query()返回TRUE成功或FALSE出错.

因此,要检测是否存在错误,您必须测试您的呼叫的返回值mysql_query:

$result = mysql_query('...');
if ($result === false) {
    // And error has occured while executing
    // the SQL query
}
Run Code Online (Sandbox Code Playgroud)


然后,你能做什么?

  • 那么,首先,您可以将错误记录到文件中,以便稍后进行分析
  • 并且您可以向用户显示一条漂亮的错误消息
    • 即某种" 哎呀,错误发生的页面 ".

但请记住:用户不需要知道(也不会理解)技术错误消息 - 所以不要显示它.


Phi*_*off 0

你必须分析你的sql。你转义了你的参数吗?听起来这可能是问题所在。您可以粘贴您的sql,以便我们帮助您。

为了显示错误,您可以例如。

$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
Run Code Online (Sandbox Code Playgroud)

  • 虽然这是确定失败原因的一个很好的答案,但我认为这并不能回答OP的要求。我认为OP想知道如何确定它何时失败,而不是什么可能导致它失败。 (4认同)