在 PHP 中,查询结果有时候会以不同的形式返回,可能是一个对象,也可能是一个数组,有时候我们想要的结果是一个数组。因此,这里介绍几种将查询结果转为数组的方法,让查询结果更符合我们的需求。
fetch_assoc() 方法返回一个关联数组,其中的键名是数据库中的字段名,键值则是记录中的对应值。fetch_assoc() 方法返回查询结果的一行数据,调用一次该方法只能返回一行,如果要读取其他行,需要再次调用该方法。
示例代码如下:
// 假设 $conn 是 MySQL 数据库连接对象 $sql = "SELECT id, name, age FROM users"; $result = $conn->query($sql); // fetch_assoc 方法返回一个关联数组 while ($row = $result->fetch_assoc()) { echo $row['id'] , $row['name'] , $row['age']; }
fetch_array() 方法返回一个既包含数字索引也包含关联索引的数组,它类似于一个关联数组和一个索引数组的组合。数字索引对应的是查询结果中的列的索引,关联索引对应的是数据库中的字段名。这种方式与fetch_assoc() 方法类似,只是返回的数组方式不同。
示例代码如下:
// 假设 $conn 是 MySQL 数据库连接对象 $sql = "SELECT id, name, age FROM users"; $result=$conn->query($sql); // fetch_array 方法返回一个包含关联和数字索引的数组 while ($row = $result->fetch_array()) { echo $row['id'] , $row['name'] , $row['age']; }
fetch_all() 方法返回一个全部结果集,此方法需要在 mysqli 扩展版本5.3.0以上才能使用,且只支持使用 MySQL 扩展驱动。返回的结果是一个二维数组,每个子数组是一行数据,其中子数组中的元素对应的是该行记录中的每个字段。使用该方法可以简化代码。
示例代码如下:
// 假设 $conn 是 MySQL 数据库连接对象 $sql = "SELECT id, name, age FROM users"; $result = $conn->query($sql); // fetch_all 方法返回一个二维数组 $data = $result->fetch_all(); foreach ($data as $row) { echo $row[0] , $row[1], $row[2]; }
总结
利用 fetch_assoc() 方法可以获取到以字段名为键名的关联数组,利用 fetch_array() 方法返回一个既包含数字索引也包含关联索引的数组,而 fetch_all() 方法则可以直接返回一个全部结果集的二维数组。根据具体情况,选择使用不同的方法来获取查询结果数组,可以帮助我们更方便地操作数据。
以上是php怎么将查询结果转为数组(三种方法)的详细内容。更多信息请关注PHP中文网其他相关文章!