【问题标题】:php - converting objects into arrayphp - 将对象转换为数组
【发布时间】:2014-12-03 17:26:12
【问题描述】:
$sql = "SELECT name FROM students";
$result = $conn->query($sql);

根据上面的代码,$result 是一个包含数据库值的对象。

假设数据库中的“name”列下有两个名字,比如name1和name2

现在我想要将对象 $result 转换为一个数组,该数组将包含 name1 和 name2 作为数组元素,如

$name_array = array('name1' , 'name2')

我该怎么做??

【问题讨论】:

  • 除非是自定义数据库对象,否则大多数数据库库不会从 query() 调用返回“结果”。它们将返回一个结果句柄/对象,然后您可以使用它来实际获取结果。
  • 它们通常包含一种获取关联数组的方法。至于重复的列名,您可以在选择时正确地为它们起别名。
  • $array = (array) $obj;
  • 你需要阅读关于php的教程和(PDO|MYSQL|MYSQLI)
  • $dbarray = $result->fetch(PDO::FETCH_BOTH);

标签: php arrays object


【解决方案1】:

if ($result->num_rows > 0) {
    
    while($row = $result->fetch_assoc()) {
        // acess the each colum elements using $row["<col name>"]
        //this will loop through all the rows
    }
} else {
    // no rows where fetched
}

即 $row = $result->fetch();将存储一行的值 在以键为列名的数组 $row 中

【讨论】:

  • 你的代码中的 $row 是一个数组吗?就像我上面所说的,我想要一个包含列元素的数组@nithin
【解决方案2】:

回答我自己的问题

为我的问题找到了解决方案,并意识到它非常基础,不应该发布这个问题。这类问题应该自己解决。

$query = "SELECT name FROM students";
if($query_run = mysql_query($query)) {

    $name_array = array();
    while($query_row = mysql_fetch_assoc($query_run)) {

        array_push($name_array, $query_row['name']);

    }

array_push 函数可以解决问题。

谢谢。

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2022-01-14
    • 2019-09-18
    • 2011-11-08
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多