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

时间:2011-10-09 21:18:45

标签: php pdo resultset

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

我基本上希望fetchAll返回:

Array {
    [name] = value,
    [name2] = value2,
    [name3] = value3,
}

变量表是一个简单的2列表(名称)|(值)

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 / etc ......但我似乎无法抵消数组以删除行号。感谢。

1 个答案:

答案 0 :(得分:8)

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

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

试试这个

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $row) {
    $variable[$row['name']] = $row['value'];
}