PHP PDO FetchAll参数从结果中删除行号



我正在构建一个函数,它的作用类似于Drupal的variable_initialize()函数,它将所有键/值对拉到一个全局变量中。我正试图找到适当的参数,我需要放入fetchAll()删除行号,并基本上得到什么fetch(PDO::FETCH_ASSOC)做,但对于所有返回的行。

我想让fetchAll返回:
Array {
    [name] = value,
    [name2] = value2,
    [name3] = value3,
}

变量表是一个简单的2列表(name)|(value)

function variable_init() {
global $db, $variable;
$query = "SELECT * FROM variable";
$stmt = $db->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll(); //need help here
    foreach($result as $name => $value) {
        $variable[$name] = $value;
    }
}

我已经尝试了PDO_COLUMN/PDO_GROUP/等…但我似乎无法抵消数组以删除行号。谢谢。

我想你可能对PDOStatement::fetchAll()返回的内容感到困惑。

方法返回数组中的所有行(数组或对象,取决于获取方式)。

试试这个

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row) {
    $variable[$row['name']] = $row['value'];
}

最新更新