mysql_fetch_assoc()返回意外值

时间:2009-07-16 13:58:41

标签: php mysql

我正在开发一个项目,我使用mysql_fetch_assoc返回一个关联数组。

但是,我很困惑为什么会返回TRUE

我查看了PHP手册页,它应该返回的唯一布尔值是FALSE,然后只有失败。

虽然我使用的是一组自定义抽象类,但基本上是这样做:

$result = mysql_query("SELECT * FROM table WHERE filename = 'test1.jpg'");
var_dump(mysql_fetch_assoc($result)); // bool(true)

有谁知道为什么它会返回TRUE而不是数组?

更新

好吧,在尝试了几件事后,我确定了我的库,因为运行上面的代码会返回一个关联数组。我不知道为什么它正在返回TRUE,但是现在,我将停止使事情变得比他们必须更复杂(我的一个问题)并且只使用mysqli(感谢提示, Michael)而不是我自己的ActiveRecord类,这显然不起作用。

谢谢!

3 个答案:

答案 0 :(得分:2)

我遇到了同样的事情。我这是一个愚蠢的编码错误。

我开始时:

$result = mysql_query($someSql);
while($row = mysql_fetch_assoc($result)) {
   // do stuff
}

工作得很好。然后我改为:

$result = mysql_query($someSql);
while($row = mysql_fetch_assoc($result) && $someCondition) {
   // do stuff
}

这被解释为$row = (mysql_fetch_assoc($result) && $someCondition),这意味着$row变为true,而剩下的行和第二个条件是true

我打算写的是:

$result = mysql_query($someSql);
while(($row = mysql_fetch_assoc($result)) && $someCondition) {
   // do stuff
}

答案 1 :(得分:1)

开始使用mysqli_query mysqli_fetch_assoc ,.旧版本很快就会过时 - 无论如何新版本都会更好。

答案 2 :(得分:0)

你试过了吗?

print_r (mysql_fetch_assoc($result));

它可能会提供你想要的东西。

哦,愚蠢的我,var_dump()什么都不返回,它直接输出像print_r()这样的发现。