我使用 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 分机开始,
要从 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/9619610/