LINUX.ORG.RU

Perl mysql


0

0

Появилась задача добавления записей в mysql через perl. Может кто подскажет как лучше это реализовать?

#!/usr/bin/perl -w
use DBI;

my $dsn = 'DBI:mysql:base:localhost';
my $db_user_name = '****';
my $db_password = '*****';
my ($id, $password);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);

my $sth = $dbh->prepare("INSERT INTO `base`.`users` (`uid`, `name`, `pass`, `data`) VALUES ('2', 'ololo', '123456', '2009-12-30 13:27:08');");

print "$sth";

Получаю:

DBI::st=HASH(0x92cde0)

Буду очень благодарен

Ответ на: комментарий от ClanMax

perldoc perlobj

естественно что $sth это ссылка на объект, который как и большинство объектов в перле естьссылка на хэш.

teferiincub ()

А я советую посмотреть в сторону DBIx::Class

alfss ()

Может кто еще подскажет как сделать проверку логина на подленность в бд. Сделал такой скрипт:

#!/usr/bin/perl -w
use DBI;
use CGI qw(:standard);
$domen = param("domen");
my $dsn = 'DBI:mysql:база:localhost';
my $db_user_name = 'логин';
my $db_password = 'пароль';
my ($id, $password);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
my $sth = $dbh->prepare("SELECT * FROM  `users` WHERE  `name` =  '$domen' LIMIT 0 , 30"); 
           $sth->execute(); 
           my $search = $sth->fetchrow_hashref();
           $sth->finish();

print "Content-Type: text/html; charset=utf-8\n\n";
if ($domen && $serch > 0) {
                             #тут пишет если верно 
else {
#тут если капец
print "фиг вам";
}
$dbh->disconnect();

Постоянно получаю фиг вам даже если такая запись есть в базе. Что не так? Сама база выглядит так (кликабельно)

ClanMax ()
Ответ на: комментарий от josephson

Действительно, огромное спасибо.

Не кто не знает как преобразовать запрос

$dbh->do(«SELECT `opisanie` FROM `users` WHERE `name` LIKE '$domen' LIMIT 0 , 30»);

Чтобы он показывал находится в графе name, а не просто отдавал 1?

/me пошел за новой клавиатурой

ClanMax ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.