我有一个mysql语句,根据id抓取一条记录。我想知道如果使用mysql_fetch_row或沿着这条线的东西是更好的,然后使用的东西,如mysql_fetch_array,只是在数据库中抓取一行。
使用mysql_fetch_row似乎是常识,但我只是想确保。
源重要的是要注意使用
mysql_fetch_array()
不是明显比慢mysql_fetch_row()
,而它提供了显著的附加值。
为什么不使用LIMIT 1
在mysql语句中,无论你将有一行
这两个函数几乎是相同的,只是名字让你觉得它们是不同的:
$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]);
手册还建议这两个函数在性能方面表现良好。当地的测试也表明了同样的情况。我建议您不要担心节省的0.0001时间/内存,而是要找到应用程序中真正的瓶颈。