何时以及为何使用mysqli_fetch_row,mysqli_fetch_object,mysqli_fetch_assoc,mysqli_fetch_array

Ant*_*dev 6 php mysql mysqli fetch

我明白以某种方式之间的差异mysqli_fetch_row,mysqli_fetch_object,mysqli_fetch_assocmysqli_fetch_array.

我的问题是它们是否如此相似(如果它们与许多主题实际上几乎相同)我们应该使用哪种?我们为什么要使用首选的那个并且有一些性能差异?

我读过一些人说永远不要使用mysqli_fetch_array.我很迷惑.我现在正在阅读一些PHP书籍,所有的例子都包括它.如果这是不正确的,我最好在锻炼时停止使用它,并使用其他可以解释和推荐的东西吗?

我也读过这些是平等的:

mysqli_fetch_array( $result, MYSQLI_ASSOC ) = mysqli_fetch_assoc( $result ) 
mysqli_fetch_array( $result, MYSQLI_NUM ) = mysqli_fetch_row( $result )
mysqli_fetch_array ( $result ) = mysqli_fetch_assoc( $result ) + mysqli_fetch_row( $result )
Run Code Online (Sandbox Code Playgroud)

如果它们与概念相同,是否存在性能差异?我们应该使用哪个?差异是为了获得更好的编程习惯,以帮助开发人员一起使用以便于工作吗?

我读过" Head First PHP&MySQL(一个有益于脑子的指南) "和" 可视化快速指南PHP 5高级版 ".他们使用不同的做法,但作者没有解释他们的任何事情.

我坚信这些差异有很大的原因,它们有不同的用法和案例,但我找不到在哪里使用不同的功能和语法.

非常感谢你提前!

tva*_*anc 6

php.net 文档中的这些行是关键:

mysqli_fetch_array() 是 mysqli_fetch_row() 函数的扩展版本。除了将数据存储在结果数组的数字索引中之外,mysqli_fetch_array() 函数还可以使用结果集的字段名称作为键将数据存储在关联索引中。

http://www.php.net/manual/en/mysqli-result.fetch-array.php

在两个或多个列具有相同名称的情况下,引用该列第一次出现的唯一方法是通过数字索引。在这些情况下,您需要mysqli_fetch_rowormysqli_fetch_arrayMYSQLI_BOTHorMYSQLI_NUM作为其第二个参数(在程序使用中)。

mysqli_fetch_assoc($result)只是 的简写mysqli_fetch_array($result, MYSQLI_ASSOC)

mysqli_fetch_object执行您所期望的操作:它将一行结果作为对象返回。使用 this overmysqli_fetch_assoc取决于对象还是数组是否能更好地表示正在处理的记录。该对象可以是您想要的任何类 - stdClass 是默认值。


小智 1

我不认为有很大的不同,只是你只需要一个函数来完成同样的事情;)