Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP PDO FetchAll arguments to remove row number from results

Tags:

php

pdo

resultset

I am building a function that acts like Drupal's variable_initialize() function that pulls all key/value pairs into a global variable. I am trying to find the proper parameters I need to put into fetchAll() to remove the row number and get basically what fetch(PDO::FETCH_ASSOC) does but for all returned rows.

I basically want fetchAll to return:

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

The variable table is a simple 2 column table (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;
    }
}

I have tried PDO_COLUMN/PDO_GROUP/etc... but I can't seem to offset the array to remove the row numbers. Thanks.

like image 617
Brandon Avatar asked Oct 09 '11 21:10

Brandon


1 Answers

I think you may be getting confused about what PDOStatement::fetchAll() returns.

The method returns all rows (arrays or objects, depending on fetch style) in an array.

Try this

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

foreach ($result as $row) {
    $variable[$row['name']] = $row['value'];
}
like image 79
Phil Avatar answered Sep 20 '22 19:09

Phil