使用PHP从mysql数据库中获取数据哪个更好?为什么?
mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()发布于 2009-09-09 22:21:56
mysql_fetch_row()它返回带有数字索引/键的数组。通常,与其他两种方法相比,它的速度更快。
mysql_fetch_assoc()它返回以列名作为键的数组。它比mysql_fetch_row()稍微慢一点。
它返回的mysql_fetch_array()实质上返回两个数组。一个具有基于关联的键索引,另一个具有数字索引。在不指定所需方法( MYSQL_NUM或MYSQL_ASSOC)的情况下,mysql_fetch_array()始终返回双精度数组。而且,与mysql_fetch_row()或mysql_fetch_assoc()相比,它的效率要低得多。您可以将结果类型设置为第二个参数。
我认为,实际上这些方法并没有显著的区别。
发布于 2009-09-09 21:38:13
实际上,它们都有不同的返回数据的方法,所以问题更像是“哪一个更适合你的需求”。
mysql_fetch_row()返回如下数组:
$row[0];$row["table_field"];$row[0];
// or
$row["table_field"];这里最“重”的可能是fetch_array,因为它接受一个可选参数,用于指定您希望将数据作为关联键数组还是数字键数组返回。
还有这个:
$row->table_field;就我个人而言,我会根据自己的需要在每个查询中使用它们,但如果你在php中使用面向对象编程,最后一个选项可能是最好的。
发布于 2009-09-09 21:39:47
这取决于您希望如何访问行数据。
如果您不需要使用索引(例如,通过foreach传递行),或者您并不关心,那么使用fetch_row应该会产生稍微小一点的开销(尽管这是非常小的开销)。如果您没有偏好,则更喜欢使用字段名,因为这会使代码更容易阅读。
永远不要使用fetch_array,它本质上结合了fetch_row和fetch_assoc。同时使用数字和关联几乎肯定会使代码不那么清晰。(如果您提供的$result_type参数不是MYSQL_BOTH,则可以使用fetch_array,但您也可以使用适当的函数,因为您的代码将同样清晰,但更简洁)。
请注意,如果您确实希望使用字段名,请确保查询中没有两个同名的字段。如果这样做,则必须在查询中为该列提供别名(并在访问数组时将其用作字段名)
https://stackoverflow.com/questions/1402205
复制相似问题