PHP PDO FetchAll аргументы для удаления номера строки из результатов - PullRequest
5 голосов
/ 10 октября 2011

Я строю функцию, которая действует как функция variable_initialize () в Drupal, которая вытягивает все пары ключ / значение в глобальную переменную.Я пытаюсь найти правильные параметры, которые мне нужно поместить в fetchAll (), чтобы удалить номер строки и получить, в основном, то, что делает fetch (PDO :: FETCH_ASSOC), но для всех возвращаемых строк.return:

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 / и т.д.кажется, чтобы сместить массив для удаления номеров строк.Спасибо.

1 Ответ

8 голосов
/ 10 октября 2011

Я думаю, вы, возможно, запутались в том, что возвращает PDOStatement::fetchAll().

Метод возвращает все строки (массивы или объекты, в зависимости от стиля выборки) в массиве .

Попробуйте это

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

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