The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Perl mysql, !*! аноним, 29-Дек-09, 17:30  [смотреть все]
Всех приветствую. Начал учить perl 2 недели назад сейчас пытаюсь написать небольшой cgi скрипт который будет обратывать запросы на регистрацию и логин на моем небольшом сайте. Может кто подскажет как сделать так чтобы при получении @login сверяля с базой bd таблицой names сначало на предмет нет ли такого логина, если есть то добавить в таблицу users: @login и @pass (в самой таблице uid name pass date). Буду очень благодарен если дадите обьяснения
  • Perl mysql, !*! аноним, 13:33 , 30-Дек-09 (2)
    Попробовал вот так:

    #!/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). Может кто подскажет как лучше?

    • Perl mysql, !*! аноним, 15:15 , 30-Дек-09 (3)
      >Получаю DBI::st=HASH(0x92cde0). Может кто подскажет как лучше?

      лучше так:

      print "STH = $sth\n";

      а серьезно, читайте документацию, там премеров навалом.

    • Perl mysql, !*! Wulf, 15:56 , 30-Дек-09 (5)
      >[оверквотинг удален]
      >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). Может кто подскажет как лучше?

      и плучили вы $sth - хэндлер от курсора в базе (правда, для mysql это чуть-чуть не так). Теперь его надо исполнить: $sth->execute(); или использовать $dbh->do(); - prepare и execute "в одном флаконе"

  • Perl mysql, !*! аноним, 15:16 , 30-Дек-09 (4)
    >Может кто подскажет как сделать так чтобы при
    >получении @login сверяля с базой bd таблицой names сначало на предмет
    >нет ли такого логина

    Так нельзя делать, потому что это race condition и в итоге можно будет зарегистрировать несколько аккаунтов с одинаковым логином.

    • Perl mysql, !*! аноним, 18:07 , 30-Дек-09 (6)
      >>Может кто подскажет как сделать так чтобы при
      >>получении @login сверяля с базой bd таблицой names сначало на предмет
      >>нет ли такого логина
      >
      >Так нельзя делать, потому что это race condition и в итоге можно
      >будет зарегистрировать несколько аккаунтов с одинаковым логином.

      Тогда как же лучше делать?

  • Perl mysql, !*! anonymous, 16:56 , 04-Янв-10 (7)
    Не кто не знает как преобразовать запрос
    $dbh->do("SELECT `opisanie` FROM `users` WHERE `name` LIKE '$domen' LIMIT 0 , 30");

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру