启用mysqli报告,捕获PHP程序中未使用索引的查询语句.
使用mysqli_report($flags)函数
在代码开发和测试期间有助于改进查询的函数。根据标志,它报告来自mysqli函数调用或不使用索引的查询(或使用错误索引)的错误。
代码如下
<?php /* 激活报告 */ mysqli_report(MYSQLI_REPORT_ALL); $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* 检查连接 */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } /* 此查询会报告错误 */ $result = mysqli_query("SELECT Name FROM Nonexistingtable WHERE population > 50000"); /* 此查询会报告一个未使用的索引 */ $result = mysqli_query("SELECT Name FROM City WHERE population > 50000"); mysqli_free_result($result); mysqli_close($link); ?>
输出
No index used in query/prepared statement SELECT Name FROM `City` WHERE `population`>50000
其中
支持的参数为
名称 | 描述 |
---|---|
MYSQLI_REPORT_OFF |
报告关闭 |
MYSQLI_REPORT_ERROR |
报告mysqli函数调用的错误 |
MYSQLI_REPORT_STRICT |
抛出mysqli_sql_exception以获取错误而不是警告 |
MYSQLI_REPORT_INDEX |
如果查询中未使用索引或错误索引,则报告 |
MYSQLI_REPORT_ALL |
设置所有选项(全部报告) |
注:如果使用pdo,则可以在 sql语名前加EXPLAIN,可以得到索引信息。
原创文章,转载请注明来自Lenix博客,地址:http://blog.p2hp.com/archives/5562
最后更新于 2020年11月6日
相关博文
启用mysqli报告,捕获PHP程序中未使用索引的查询语句.