【发布时间】:2017-07-04 09:00:44
【问题描述】:
这正是我需要的:
<?php
$conn = mysqli_connect($server, $buser, $pwd, $db);
$query = $conn->query("mysql_query here");
if (!query) {
$error = $conn->error;
$log_error = $conn->query("INSERT INTO tab (log) VALUES ('$error')");
}
?>
但是,这不起作用,错误没有提交到数据库中。
使用数据库记录错误实际上是多么糟糕,这似乎是满足我需求的唯一方法。
需要什么:我需要记录来自查询的所有错误,无论类型如何,并将它们记录在某个可以在专用网页上查看的地方,该网页仅适用于使用 PHP 的指定级别帐户访问,只是为了显示所有这些错误。
我已经让一切正常,帐户级别等,只是似乎无法找到一种方法以以下格式在 php 页面上记录过去发生的错误:
account_who_caused_error || page_where_error_occured.php || error_message || datetime
由于我需要的性质,无法使用error_log。那么到底还有什么要做呢?
【问题讨论】:
-
$conn是什么类型的对象? -
$conn 是一个简单的数据库连接:$conn = mysqli_connect($webserver, $webuser, $webpwd, $webdb);
-
在数据库中记录数据库错误似乎是个坏主意 :-) 如果您需要通过网页查看日志,您仍然可以将错误记录在文本文件中并使该文件可访问,或者如果数据结构更复杂,您可以将它们存储在 json 文件或 CSV 中。
-
你试过转义
$error变量吗?$log_error = $conn->query("INSERT INTO tab (log) VALUES ('" . mysqli_real_escape_string($error) . "')");
标签: php mysql database error-handling