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

我使用xampp。我执行了MySQL连接:

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

mysql_select_db($db, $connection);

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

但最简单的查询如下:

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

返回false。我该如何调试原因?

回答:

:由于mysql ext不再存在,以下是我在我的网站上根据在Stack

Overflow上回答1000多个问题的经验编写的其余两个MySQL API的答案:

  • 如何报告mysqli中的错误
  • 如何使用PDO连接到MySQL(以正确的错误报告为目标)。

简而言之,对于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

以上是 如何调试为什么最简单的MySQL查询返回false? 的全部内容, 来源链接: utcz.com/qa/399000.html

回到顶部