这次我遇到了一个奇怪的问题。我有一个屏蔽数据库设置,它接受一个 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/