我正在构建一个像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 ......但我似乎无法抵消数组以删除行号。感谢。
答案 0 :(得分:8)
我认为你可能会对PDOStatement::fetchAll()
返回的内容感到困惑。
该方法返回数组中的所有行(数组或对象,具体取决于获取样式)。
试试这个
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row) {
$variable[$row['name']] = $row['value'];
}