当前位置: 首页 > 面试题库 >

mysql_fetch_array,mysql_fetch_assoc,mysql_fetch_object

高明辉
2023-03-14
问题内容

这些功能非常相似:

mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object()

我最近开始使用mysql_fetch_object,因为我正在使用PHP做更多的OOP。

但是人们对于哪种最佳使用方法和原因有何看法,以及最佳使用哪种方案。

感谢您的想法!


问题答案:

mysql_fetch_array 将为您提供可以作为键的数组:

  • 列的编号和名称(如果使用) MYSQL_BOTH
  • 列名称,使用MYSQL_ASSOC-在这种情况下,您将获得与使用时相同的结果mysql_fetch_assoc
  • 如果使用,则仅数字(取决于查询中列的顺序) MYSQL_NUM

使用列名称索引结果可能是最有用的解决方案-至少易于使用。

但是在一种情况下,通过select子句中的字段位置为结果建立索引很有趣:一种情况是:当您有多个具有相同名称或别名的列时。
在这种情况下,由于数组中不能包含两个具有相同索引的条目,因此您将只能使用列名作为索引来访问这些列之一。
对于其他具有相同名称的列,您将必须使用数字索引。

这种情况可能是我唯一要使用的mysql_fetch_array情况-为了避免这种情况,我宁愿在查询中使用别名-更加清楚。

mysql_fetch_assoc
将为您提供一个数组,将列名作为键,将数据作为值。

没什么可说的,实际上。

并且mysql_fetch_object将获得您的objetcs作为回报。

在之间进行选择mysql_fetch_assocmysql_fetch_object很可能取决于您如何开发应用程序:如果到处使用对象,第二个对象可能是最合适的。

如果使用数组作为数据容器,则可以使用第一个数组。



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: mysql_fetch_array,mysql_fetch_assoc,mysql_fetch_object 我想要一个可以将结果集当前行中的字段返回到关联数组并将结果指针移至下一行的函数。 混淆之间 我应该使用哪一个?任何帮助,将不胜感激。谢谢。 问题答案: 注 :使用的功能被认为是 过时 ,你应该使用的东西,提供了更好的安全

  • 问题内容: 我正在尝试从MySQL表中选择数据,但收到以下错误消息之一: mysql_fetch_array()期望参数1为资源,给定布尔值 这是我的代码: 问题答案: 查询可能由于各种原因而失败,在这种情况下,mysql_ *和mysqli扩展名都将从它们各自的查询函数/方法中返回。您需要测试该错误情况并进行相应处理。 mysql_ *扩展名 : 注: 该mysql_功能已被弃用,并在PHP版本

  • 问题内容: 编辑:感谢你们的快速反应-我最终切换到mysql_fetch_assoc()并使用do … while,我很高兴。 我正在使用相同的过程来创建和填充表-一切正常,除了 在每个表中跳过第一行 。由于我似乎无法查明问题,可以用另一双眼睛。提前致谢。 问题答案: 您正在调用mysql_fetch_array两次…循环前一次,循环时一次。 如果您需要种子行来构建标题行,则最好在此处使用do .

  • 问题内容: 好的,我有以下代码: 然后,当我尝试回显内容时,只能回显输出第一项,但是如果我尝试回显,则会得到未定义的偏移量。 但是,如果我通过PHPMyAdmin运行以上查询,它将返回10个项目的列表。为什么不能将其识别为10个项的数组,让我回显0-9? 谢谢您的帮助。 问题答案: 那是因为数组代表返回结果集中的一行。您需要再次执行该功能以获得下一条记录。例:

  • 问题内容: 每次我运行mysql_fetch_array时,返回带有重复值的数组, 例如 但我只想要数组中的单个结果,我尝试使用 但这没有区别。 问题答案: 这是的预期功能。如果您不希望有“重复项”,而只是具有关联数组,请改用。 例:

  • 问题内容: 如何将所有从mysql_query的行添加到mysql_fetch_array()?我希望能够尽可能有效地执行此操作,因为它可以处理很多行。 问题答案: 最常见的方式: 如文档中的示例所示。