【发布时间】:2018-01-02 03:53:42
【问题描述】:
因此,如果我在创建连接之前输入mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT),我希望它以异常的形式报告所有错误,它似乎确实如此。但是,由于某种原因,我收到了错误警告
如果bind_param() 中的绑定变量或类型不匹配,显然无法捕捉到。如果我使用太少或太多的变量来绑定,我会收到一条示例消息。
警告:mysqli_stmt::bind_param(): 变量数与准备语句中的参数数不匹配
这是mysqli_sql_exception 的错误吗?我可以明显地压制警告,但这似乎有点骇人听闻。另一方面,如果我这样做@,无论如何我仍然会收到一条有意义的消息。
没有为准备好的语句中的参数提供数据
不过,如果可能的话,我宁愿不这样做,但这似乎是唯一的方法,除非我完全错过了一些东西。我很惊讶我在任何地方都找不到有关此的任何信息。我想我可以用set_error_handler() 做点什么,但老实说,我认为在这种情况下抑制警告是更好的选择。
【问题讨论】:
-
我在想你想要的是
mysqli_report(MYSQLI_REPORT_STRICT)。 -
不,抱歉,这不是答案
-
你是对的!根据文档
MYSQLI_REPORT_STRICT应该是“Throw mysqli_sql_exception for errors instead of warnings”,看来这里不是这种情况。我试过了,我也收到了警告。