php - 'Warning : mysql_fetch_array() expects parameter 1 to be resource, boolean given in...' 但我的查询是正确的

标签 php mysql

<分区>

好的,所以我知道关于“为什么我使用 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)

最佳答案

$query = "SELECT * FROM newuser WHERE token='$token'";
$result = mysql_query($query) or die(mysql_error());

while($row=mysql_fetch_array($result)) {
   do stuff...
}

如果die语句没有执行,进入while循环时$result就OK了。那么问题可能是您也在循环内使用 $result 进行查询,最终导致它被设置为 false。

关于php - 'Warning : mysql_fetch_array() expects parameter 1 to be resource, boolean given in...' 但我的查询是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15723897/

相关文章:

php - 如何使用 NGINX 从 url 中删除 .php 和 .html 扩展名?

php - jQuery 响应保存为 PHP 变量

php - 检查 mysql ID 跳过 php

PHP:将时间添加到当前时间?

php - Laravel 可选的 WHERE 子句

mysql - 如何使用 nodeJS 在 Sequelize 中包含的对象数组中执行查询

php - 使用 MKNetworkEngine 将图像 iOS 上传到 PHP - 我知道它有效,但无法让 PHP 捕获

php - 对mysql进行查询时出现问题-给定 bool 值

php - 通过 API 发送耗时的脚本

php - 从 MySQL 中获取随机行并用 PHP 显示它