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

tat*_*a_c 7 php mysql

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

$connection = mysql_connect($host , $user , $passw);
mysql_select_db($db, $connection);
Run Code Online (Sandbox Code Playgroud)

我收到带有echo命令的输出(通过检查布尔返回值)建立连接并找到数据库$ db.

但最简单的查询如:

$query = mysql_query("SELECT * FROM 'users'");
Run Code Online (Sandbox Code Playgroud)

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

You*_*nse 16

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

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Run Code Online (Sandbox Code Playgroud)

您当前查询的问题是mysqli_connect()一部分.单引号必须用于分隔字符串,而对于标识符,您必须使用反引号:

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
Run Code Online (Sandbox Code Playgroud)

连接可能存在问题.
在代码顶部添加这些行,以确保您可以看到发生的每个错误

$query = "SELECT * FROM 'users'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);
Run Code Online (Sandbox Code Playgroud)