PHP mysqli_driver::$report_mode / mysqli_report() 函数根据标志设置 mysqli 错误报告模式异常、警告或无。当设置为 MYSQLI_REPORT_ALL 或 MYSQLI_REPORT_INDEX 时,它还会通知不使用索引(或使用错误索引)的查询。
语法
//面向对象风格
$mysqli_driver->report_mode;
//面向过程风格
mysqli_report(flags)
参数
标志 | 必需。 指定标志。它可以采用以下值:
|
返回值
返回true。
示例:面向对象风格
下面的示例显示了 mysqli_driver::$report_mode 属性的用法。
<?php
//激活上报
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
try {
//建立与数据库的连接,如果连接
//失败,会抛出mysqli_sql_exception
$mysqli = new mysqli("localhost", "user", "password", "database");
//从数据库获取查询结果
$sql = "SELECT Name, Age FROM Employee ORDER BY Age";
$result = $mysqli->query($sql);
//处理从数据库检索的数据
//- 将所有结果行作为关联数组获取
$rows = $result->fetch_all(MYSQLI_ASSOC);
//显示行
foreach ($rows as $row) {
printf("%s, %d\n", $row["Name"], $row["Age"]);
}
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
?>
上述代码的输出将类似于:
Marry, 23
Kim, 26
John, 27
Adam, 28
示例:面向过程风格
下面的示例显示了mysqli_report()函数的用法。
<?php
//激活上报
mysqli_report(MYSQLI_REPORT_ALL);
try {
//建立与数据库的连接
$mysqli = mysqli_connect("localhost", "user", "password", "database");
//从数据库获取查询结果
$sql = "SELECT Name, Age FROM Employee ORDER BY Age";
$result = mysqli_query($mysqli, $sql);
//处理从数据库检索的数据
//- 将所有结果行作为关联数组获取
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
//显示行
foreach ($rows as $row) {
printf("%s, %d\n", $row["Name"], $row["Age"]);
}
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
?>
上面代码的输出将类似to:
Marry, 23
Kim, 26
John, 27
Adam, 28
示例:除坏索引错误外的错误报告
下面的示例显示如何使用此函数来报告除坏索引错误外的所有错误。
<?php
//激活上报
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
//建立与数据库的连接
$mysqli = mysqli_connect("localhost", "user", "password", "database");
//从数据库获取查询结果
$sql = "SELECT Name, Age FROM Employee ORDER BY Age";
$result = mysqli_query($mysqli, $sql);
//处理从数据库检索的数据
//- 将所有结果行作为关联数组获取
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
//显示行
foreach ($rows as $row) {
printf("%s, %d\n", $row["Name"], $row["Age"]);
}
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
?>
上述代码的输出将类似于:
Marry, 23
Kim, 26
John, 27
Adam, 28