Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Ещё вопрос по DBI::mysql 19.04.05 10:06 Число просмотров: 1780
Автор: Heller <Heller> Статус: Elderman
|
Пример взят полностью из статьи на mysql.ru:
use DBI;
my $dsn='DBI:mysql:test:localhost';
my $db_user_name='root';
my $db_password='qwerty';
my ($id,$password);
my $dbh=DBI->connect($dsn,$db_user_name,$db_password);
$input_nickname='Cowlick';
$input_password='udder';
my $sth = $dbh->prepare(qq{select id, password from users where nickname = '$input_nickname'});
$sth->execute();
($id, $password) = $sth->fetchrow_array();
print join ", ", keys(%{$sth});
$sth->finish();
if ($input_password eq $password)
{
print "OK!";
}
Почему-то не работает. Пользователь Cowlick точно есть в таблице - при точно такой же команде в консоле, которую я указываю в prepare нормально выводится id и password, а вот в результате я ничего не получаю: fetchrow_array возвращает пустой список, хотя я сверялся с мануалом по DBI - там даны совершенно аналогичные примеры.
Пытался сам разобраться в ситуации - в $sth лежит "DBI::st=HASH(адрес)". Пробовал такую конструкцию: keys(%{$sth}) - возвращает пустой список. Не знаю что это значит и должно ли по тому адресу быть хоть что-то - в код DBI не вникал. prepare по идее работает нормально, т. к. если указать ошибочный запрос, выводится предупреждение. Видимо, либо execute не захватывает ответ сервера, либо я не так fetchrow_array применяю. В общем, совсем я запустался. Тяжко быть beginners'ом :-(
|
|
|