gpt4 book ai didi

php - 如何调试为什么最简单的 MySQL 查询返回 false?

转载 作者:行者123 更新时间:2023-11-29 20:51:07 26 4
gpt4 key购买 nike

我和 xampp 一起工作。我执行MySQL连接:

$connection = mysql_connect($host , $user , $passw);
mysql_select_db($db, $connection);

我收到了 echo 命令的输出(通过检查 bool 返回值),表明连接已建立并且数据库 $db 已找到。

但最简单的查询如下:

$query = mysql_query("SELECT * FROM 'users'");

返回错误。我该如何调试原因?谢谢。

最佳答案

强制更新:由于 mysql ext 不再存在,以下是我根据在 Stack Overflow 上回答 1000 多个问题的经验在我的网站上编写的剩余两个 MySQL API 的答案:

简而言之,对于 mysqi,必须在 mysqli_connect() 调用之前添加以下行:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

例如,对于 PDO,必须设置正确的错误模式

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

从旧的 mysql ext 开始,

要从 mysql_query() 获取错误,您必须使用 mysql_error() 函数。
因此,始终以这种方式运行所有查询,至少在您开发更高级的查询处理程序之前:

$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

您当前查询的问题是'users'部分。必须使用单引号来分隔字符串,而对于标识符,则必须使用反引号:

SELECT * FROM `users`

为了在开发过程中看到这些错误,请在代码顶部添加这些行,以确保您可以看到发生的每个错误

ini_set('display_errors',1);
error_reporting(E_ALL);

但是,在生产服务器上,第一行的值应从 1 更改为 0

关于php - 如何调试为什么最简单的 MySQL 查询返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com