我有一個mysql語句,它只抓取一個基於id的記錄。我想知道,如果使用mysql_fetch_row或其他方法,那麼使用諸如mysql_fetch_array之類的東西,只需抓取數據庫中的一行即可。使用PHP在MySQL中選擇一行的最佳方式是什麼?
與mysql_fetch_row一起使用似乎是常識,但我只是想確認一下。
我有一個mysql語句,它只抓取一個基於id的記錄。我想知道,如果使用mysql_fetch_row或其他方法,那麼使用諸如mysql_fetch_array之類的東西,只需抓取數據庫中的一行即可。使用PHP在MySQL中選擇一行的最佳方式是什麼?
與mysql_fetch_row一起使用似乎是常識,但我只是想確認一下。
要注意的重要一點是,使用
mysql_fetch_array()
是不 顯著比使用mysql_fetch_row()
,雖然它提供了一個 顯著增值較慢。
兩個功能幾乎相同,名字只是讓你覺得這是不同的:
$r=mysql_query('SELECT name,email FROM tbl LIMIT 1');
var_dump(mysql_fetch_assoc($r));
// array('name'=>[dbName], 'email'=>[dbEmail]);
var_dump(mysql_fetch_row($r));
// array([dbName], [dbEmail]);
// It's a normal incremental integer index array
var_dump(mysql_fetch_array($r,MYSQL_ASSOC));
// same as mysql_fetch_assoc();
var_dump(mysql_fetch_array($r,MYSQL_NUM));
// same as mysql_fetch_row();
var_dump(mysql_fetch_array($r,MYSQL_BOTH));
// array(0=>[dbName], 1=>[dbEmail], 'name'=>[dbName], 'email'=>[dbEmail]);
該手冊還建議性能明智的兩種功能表現不俗。本地測試提示相同的方向。我建議您不要擔心保存的.0001時間/內存,並在您的應用程序中發現真正的瓶頸。
在兩者之間進行選擇的原因是什麼? 73微秒的加速?如果您只是在提取關聯和數字索引數組之間進行選擇,只需使用更容易處理的數組。 – Wiseguy 2011-04-13 22:51:05