2009-07-16 104 views
0

我正在使用mysql_fetch_assoc來返回關聯數組。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類,顯然不工作。

謝謝!

+2

如何進行實際的代碼是什麼樣子? – Gumbo 2009-07-16 14:01:44

回答

1

開始使用mysqli_query mysqli_fetch_assoc,。舊版本很快就會過時 - 反正新版本更好。

0

你試過:

print_r (mysql_fetch_assoc($result)); 

它可能會給你在找什麼。

哦,傻了,var_dump()什麼也沒有返回,它直接輸出它的結果,如print_r()。

+0

剛剛返回`1` – 2009-07-16 14:03:50

+1

mysql_num_rows()說什麼?如果將MySQL查詢直接放入數據庫會發生什麼? – Meep3D 2009-07-16 14:34:40

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 
}