Я пытаюсь получить свой первый выбор для работы с использованием selectall_hashref
из модуля Perl DBI. Я успешно открыл соединение с базой данных (MySQL). Я получаю сообщение об ошибке, когда я выполнить следующее:Ошибка «атрибут параметр не в хэш-ref» при использовании Perl DBI selectall_hashref
$dbh->selectall_hashref('SELECT id FROM users WHERE login=?',undef,"myusername");
DBI :: й = HASH (0x1505a60) -> _ подготовить (...): параметр атрибута 'MyUserName' не является хэш ссылок на /usr/lib/x86_64-linux-gnu/perl5/5.20/DBD/mysql.pm линия 238.
Моя таблица должна быть в состоянии поддерживать этот запрос, он имеет столбец id
столбца и login
для каждого пользователя ,
Примеры, которые я нашел для selectall_hashref
, показывают параметр замены ?
, передаваемый в качестве третьего параметра. В DBI documentation говорится, что второй и третий аргументы должны быть %attr
и @bind_values
, но не дают много документации о них или показывают рабочие примеры.
Что вызывает ошибку, и что еще более важно, как вы на самом деле используете %attr
и @bind_values
правильно?
Я надеялся вернуть hashref как '{" id "-> 1}', поэтому я выбрал версию hashref. Использует ли hashref параметры, которые он принимает, а не то, что он возвращает? –
Я вижу. Боюсь, вам нужно идти по строкам и использовать fetchrow_hashref для этого. DBI немного непоследователен в отношении именования ... –
Вот и все. Я хотел 'selectrow_hashref' не' selectall_hashref'. Я видел примеры для обоих и скопировал неправильный код. –