2013-07-17 49 views
5

有人能告訴我爲什麼這不工作,當我試圖改用我的老SQL來SQLI:致命錯誤:調用未定義功能mysqli_result()

$query = "SELECT * FROM `product_category`"; 
$result = mysql_query($query, $connect) or die("could not perform query: " . mysql_error()); 
$num_rows = mysql_num_rows($result); 

for ($i=0; $i < $num_rows; $i++) 
{ 
    $ID = mysql_result($result,$i,"ID"); 
    $name = mysql_result($result,$i,"name"); 
    $description = mysql_result($result,$i,"description"); 

到:

$query = ("SELECT * FROM `product_category`"); 
$result = mysqli_query($connect, $query) or die("could not perform query"); 
$num_rows = mysqli_num_rows($result); 

for ($i=0; $i < $num_rows; $i++) 
{ 
    $ID = mysqli_result($result, "ID"); 
    $name = mysqli_result($result,$i,"name"); 
    $description = mysqli_result($result,$i,"description");` 

它不斷給我一個錯誤:「致命錯誤:調用未定義的函數mysqli_result()」

+0

你在哪裏調用'mysqli_error()'?您需要將連接變量作爲參數傳遞給它。 – andrewsi

+3

沒有'mysqli_result()'函數。你可以提供你自己的,來模擬'mysql_result()'函數的行爲,但你並不真的想這樣做。最好使用新模型,只需調用'mysqli_fetch_assoc()'函數即可。並且沒有必要獲得行數和for循環。只需使用一個while循環。當沒有更多的行要讀取時,'mysqli_fetch_assoc()'函數將返回FALSE,從循環中退出。查看Marc B. – spencer7593

回答

12

不要使用這種類型的代碼。這是非常低效的。使用mysqli_fetch_assoc()代替:

while($row = mysqli_fetch_assoc($result)) { 
    $id = $row['ID']; 
    $name = $row['name']; 
    etc.. 
} 

一個單獨的數據庫操作,而不是3+你正在試圖做的。

+4

+1的答案。要真正回答OP提出的第一個問題,「告訴我,爲什麼這不工作」 ......在問題的代碼不起作用的原因是,它使一個不存在的'mysqli_result()的調用函數' 。該功能不存在。 – spencer7593

+0

是的,因爲它是在mysql庫中的一個無用函數。 –

+1

嘿,現在! :)我們中的一些人莫名其妙地發生了一種我們可以使用的虛幻功能,但是我們沒有理解所有的高級功能hijinx dat都發生在窗簾後面。我只想要我的魔力場的價值! (我的孩子,我的孩子)(我見過執行'mysqli_result'函數)。 – spencer7593

相關問題