【问题标题】:How to get mysqli_query error report properly in php? [duplicate]如何在 php 中正确获取 mysqli_query 错误报告? [复制]
【发布时间】:2015-03-31 17:08:06
【问题描述】:

真的,当我无法检测到发生了什么错误时,这让我发疯。我受不了了。

我设法连接到 MySQL,并通过以下方式进行检查:

$connection = mysqli_connect(HOST, USER, PASS, DB) or die('Could not connect!');
if($connection){
    echo 'It's connected!';
}

是的,就是说连接。然后,当我尝试查询时,它会失败而不会报告错误。我试过这样做来检查它是否失败:

$query = "SELECT $field FROM users WHERE id = ".$_SESSION['user_id'];
$result = mysqli_query($dbc, $query);
if($result){
    echo 'Query OK';
}else{
    echo 'Query failed';
}

浏览器提示:查询失败。所以,我的查询中有错误。然后我用这个回应了这个查询:

echo $query;
// Printed in the browser: SELECT firstname FROM users WHERE id = 1

复制该值并在 phpMyAdmin 中使用它。有用。所以,我猜mysqli_query 函数中发生了错误。但我无法收到错误消息,所以我不知道发生了什么。我试过这个:

$result = mysqli_query($dbc, $query) or die(mysqli_error($dbc));

还有这个:

if(!$result){
     echo mysqli_error($dbc);
}

什么都没有发生。浏览器只是空白。然后,我试图改变这个:

$result = mysqli_query($dbc, $query);

到这里:

$result = mysqli_query($query);

仍然没有任何反应。这是怎么回事?我怎么知道发生了什么错误?

我在 Debian 中使用 phpinfo() 运行服务器:PHP 版本 5.4.36-0+deb7u3

【问题讨论】:

  • 您检查过您的error_reportingdisplay_errors 设置吗?另外,你不是在你的机器上调试,而是在远程服务器上调试? ://
  • @Andrea 抱歉,如何检查这些设置?我正在远程服务器上进行编辑。实际上,我远程安装了 VirtualBox 中的服务器。
  • 你看到了吗:http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php?您是否在您的网络服务器和 PHP 中都启用了错误日志记录?你检查过你的网络服务器错误日志和 PHP 的错误日志吗?

标签: php mysqli error-reporting


【解决方案1】:

人们阅读了他们发布的内容,他们正在混淆连接。

$connection = mysqli_connect(HOST, USER, PASS, DB) or die('Could not connect!');

所以这一行应该是:

$result = mysqli_query($connection, $query) or die(mysqli_error($connection));

使用mysqli_,您需要将连接传递给mysql_ 中不需要的许多东西

或者你可以切换你原来的数据库连接到$dbc

 $dbc = mysqli_connect(HOST, USER, PASS, DB) or die('Could not connect!');

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2023-03-26
    • 2018-05-04
    • 2015-10-12
    • 2014-09-18
    相关资源
    最近更新 更多