【发布时间】:2016-08-23 09:40:39
【问题描述】:
在文档http://php.net/manual/en/function.mysql-fetch-array.php 中,它声明“通过使用 MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组。”但据我了解,php 数组可以是关联的或数字的,不能两者兼而有之。您显然可以创建一个关联数组,其中也包含数字索引和键,但这会使数组计数加倍。那么他们是怎么做到的呢?他们是否为这个功能做了一个特殊的例外?它返回的实际上不是常规数组,而是他们自己的特殊数组吗?还是我遗漏了什么?
【问题讨论】:
-
“您显然可以创建一个关联数组,其中还包含数字索引作为键,但这会使数组计数加倍。”是的,就是这样。没什么神奇的。
-
为什么还要担心 mysql_* 函数是如何工作的呢?您甚至问这个问题的事实表明您还没有真正掌握 PHP,所以我假设您正在开始一个相对较新的项目。这些函数已从最新的 PHP 中删除,并且自 5.5 版以来已弃用。请改用 PDO 或 mysqli。看到您链接的页面顶部的大红色警告框了吗?
-
正是因为我正在尝试转换为mysqli,我才提出这个问题。我正在尝试转换一个 mysql_fetch_array 包装函数,以便它可以用于准备好的语句的结果,但我不能只使用 mysqli_fetch_array,因为这需要一个 mysqli_result 实例作为参数,我不能使用 mysqli_get_result 因为我没有没有安装 mysqlnd,安装 mysqlnd 是不可能的。我的项目与新项目相反。我不能使用 PDO,因为我正在转换 mysql 包装器,所以我正在尝试重新创建完全等效的函数。