2013-05-08 80 views
0

這很好,除了最後一行總是返回false。我已經在我的網站中多次使用了這個,不管我運行什麼查詢,最後一行總是返回false而不是最後一行的數據。最後一行總是返回false?

因此,如果我有一個應該返回2行的查詢,它返回1行和false。我不確定爲什麼。

function query2array($query, $sql_con) { 
    $result = mysql_query($query,$sql_con); 

    if(!$result) { 
     return false; 
    } 
    else if (mysql_num_rows($result) > 0) { 
     //set entire result to array 
     while($arr_data[] = mysql_fetch_array($result)); 

     var_dump($arr_data);   

     if(count($arr_data) > 0) { 
      return $arr_data; 
     } 
    } 

    return false; 
} 

我新的PHP和我讀過mysql_fetch_array文件,只是似乎無法弄清楚發生了什麼事情錯在這裏。 (我也知道,我應該使用mysqli的,但我拿起別人開發的網站)

回答

3

試試這個:

while($row = mysql_fetch_array($result))$arr_data[] = $row; 

這種行爲的原因是你追加mysql_fetch_array()結果陣列,而不檢查它是否成功檢索。

作爲manual

返回字符串數組對應於所提取的行,或 FALSE如果沒有更多的行。


注意:MySQLMySQL的 * _函數)擴展deprecated。我建議使用MySQLimysqli * _ functions)或PDO

+0

我知道它必須是一些愚蠢的東西。非常感謝。 – Blanky 2013-05-08 02:42:12

+1

@Nonear,我也想指出,'mysql_ *'函數已被棄用。無論哪種方式,祝你好運。 – BlitZ 2013-05-08 02:44:44