3 回答
TA贡献1898条经验 获得超8个赞
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_assoc,mysql_fetch_object很可能取决于您如何开发应用程序:如果到处使用对象,第二个对象可能是最合适的。
如果使用数组作为数据容器,则可以使用第一个数组。
TA贡献1798条经验 获得超7个赞
mysql_fetch_array()提取结果行为关联数组,数字数组或两者。它返回与获取的行相对应的字符串数组,如果没有更多行,则返回FALSE。返回数组的类型取决于$ result_type的定义方式。
通过使用MYSQL_NUM,您只能获取数字索引(如$ row [0],$ row 1等),即数字数组。
通过使用MYSQL_ASSOC,您只能获得关联索引(如$ row [“ id”],$ row [“ name”]等),即关联数组。
通过使用MYSQL_BOTH(默认),您将获得一个具有关联索引和数字索引的数组。(如$ row [0],$ row [“ name”]等),即数值数组和关联数组。
mysql_fetch_assoc()提取结果行作为关联数组。(列名作为键)。
mysql_fetch_object()获取结果行作为一个对象。
它返回一个对象,该对象的属性与获取的行相对应,并将内部数据指针向前移动。
对我来说,使用mysql_fetch_assoc()有很多优点,因为您可以使用数组函数,例如array_walk和uasort()。
TA贡献1775条经验 获得超11个赞
假设我们有下表
名称国家/地区代码
----- ----------
孟加拉国BD
美国普韦布洛
美国阿瓦达
$ query =“选择名称,CountryCode来自城市”;
$结果= mysqli_query($连接,$查询)
mysqli_fetch_object(数据可以作为对象获取)
while ($obj = mysqli_fetch_object($result)) {
printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
mysqli_fetch_assoc(作为关联数组获取,即键)
while ($row = mysqli_fetch_assoc($result)) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
mysqli_fetch_array(数字和关联)
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
printf("%s (%s)\n", $row[0], $row[1]);
}
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
添加回答
举报