我正在构建一个函数,它的作用类似于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'];
}