我有一个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