mysql_fetch_array,mysql_fetch_assoc,mysql_fetch

这些功能非常相似:


mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object()

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


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


感谢您的想法!


繁华开满天机
浏览 610回答 3
3回答

汪汪一只猫

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很可能取决于您如何开发应用程序:如果到处使用对象,第二个对象可能是最合适的。如果使用数组作为数据容器,则可以使用第一个数组。

元芳怎么了

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()。

繁星淼淼

假设我们有下表名称国家/地区代码----- ----------孟加拉国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"]);}
打开App,查看更多内容
随时随地看视频慕课网APP