好的,所以我知道关于“为什么我会收到 mysql_fetch_array... 的警告”的问题已经被问了好几次了,我的问题是所有接受的答案都表明服务器吐出这个警告的原因是因为查询本身是不正确的...这不是我的情况。
下面是代码:
$dbhost = "host";
$dbuser = "user";
$dbpass = "pass";
$dbname= "db";
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname) or die ('<META HTTP-EQUIV="Refresh" CONTENT="0;URL=Failed.php?dberror=1">');
$token = mysql_escape_string($_GET['token']);
$query = "SELECT * FROM newuser WHERE token='$token'";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)) {
do stuff...
}
'while' 语句中的所有内容都执行得很好——它对数据库进行了一些更改,我可以验证这些更改正在发生。更重要的是,查询永远不会吐出任何错误细节。我已经尝试测试 $result===false 并询问错误信息但它也不会返回任何内容的情况。据我所知,查询字符串很好,没有失败。
我在这里做错了什么?除了 SQL 语句之外,PHP 不喜欢我的 While 参数是否有任何其他原因是不好的(我再次确信它还不错)?
另外,我知道我应该使用 mysqli/PDO ....我计划在不久的将来切换到它,但我只是想把头发拉出来,我不知道为什么它会失败吨。在这一点上,这更像是个人的事情......
感谢您的帮助,如果您需要任何其他信息,请告诉我。(PHP 5.3 版)
这是查询字符串 ($query) 的回显:
SELECT * FROM newuser WHERE token='6e194f2db1223015f404e92d35265a1b'
这是查询结果的 var_dump ($result): resource(3) of type (mysql result)