php - mysql_query 返回一行,但 mysql_fetch_array 不做任何事情

标签 php mysql echo

这次我遇到了一个奇怪的问题。我有一个屏蔽数据库设置,它接受一个 url 并给它一个字符串掩码,这样我就可以通过给他们一个指向我网站的重定向引擎的链接来将用户重定向到另一个站点(直接下载)。

我在管理员端(我输入 URL 的地方)遇到问题,我的 mysql_fetch_array 命令无法运行。我知道查询至少返回一行,因为当我运行以下代码时:

$query = "SELECT * FROM `urls` WHERE `in`='$lks[$i]' ORDER BY `id` DESC LIMIT 1";

$r = mysql_query($query);

if(mysql_num_rows($r) < 1)
echo "Less than 1";
else
echo "At least 1";

它返回“至少 1”,但是当它到达 mysql_fetch_array while 语句时,没有任何反应。就好像它完全忽略了它。

代码:

$query = "SELECT * FROM `urls` WHERE `in`='$lks[$i]' ORDER BY `id` DESC LIMIT 1";

$r = mysql_query($query);

while($me = mysql_fetch_array($r))
{
    echo "Blah";
}

这段代码没有回应任何内容。怎么了?

顺便说一句,我知道我已连接到数据库和所有内容,因为我在此命令之前运行了与此非常相似的其他命令,并且它们都可以毫无问题地执行。

此外,此命令在for 循环 中(我不知道为什么这会是个问题,因为我以前做过很多次,从来没有遇到过任何问题)。

最佳答案

尝试回显 mysql_error();我认为可能是您将列名和表名放在引号中。

$query = "SELECT * FROM urls WHERE in='$lks[$i]' ORDER BY id DESC LIMIT 1";
$r = mysql_query($query);
if($r)
{
$rowCount = mysql_num_rows($r);
if($rowCount == 1)
{
echo "1 row";
}
}
else
{
echo mysql_error(); 
}

如果这不起作用,则您的数组一定有问题。 :/

关于php - mysql_query 返回一行,但 mysql_fetch_array 不做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12015154/

相关文章:

MySQL:按计数排序(*)?

php - 是否有与 PDO::FETCH_CLASS 等效的 INSERT 或 UPDATE?

linux - 为什么 du 或 echo 流水线不起作用?

MYSQL 仅从多个列中回显一次值

PHP 7.2 mysqli 无法使用没有 SSL 的身份验证插件 sha256_password 连接到 MySQL

javascript - PHP 和 JS mcrypt 解密不起作用

php - PHP 脚本中的 SED 命令(错误表达式 #1,char 34 : Invalid preceding regular expression)

php - 向/从二维数组添加/获取数据不起作用

php - "Cannot log in to the MySQL server",没有在 CentOS7 上使用 phpMyAdmin 的代码

bash - echo -e 在 ubuntu 上由 root 在脚本中运行时表现不同