2011-10-09 68 views
5

我正在构建一个类似于Drupal的variable_initialize()函数的函数,该函数将所有的键/值对拉入全局变量。我试图找到我需要放入fetchAll()的适当参数,以除去行号,并基本上获取(PDO :: FETCH_ASSOC)的功能,但对于所有返回的行。PHP PDO FetchAll参数从结果中删除行号

我基本上要使用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 /等。 ..但我似乎无法抵消阵列删除行号。谢谢。

回答

6

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

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

试试这个

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

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

感谢您的帮助。我仍然在慢慢地但是确实地学习PDO。 – Brandon