我正在开发一个项目,我使用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类,这显然不起作用。
谢谢!
答案 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()这样的发现。