Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Почему не удаляет строку из MySqlя?  (Прочитано 11936 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vetlblya
Гость
« : 03-06-2010 10:58 » 

Код:
 Perl:

$dbh = DBI->connect("dbi:mysql:database=db:host=localhost", 'root', 'pass');

$session = CGI::Session->new('driver:mysql', $sid, { 'Handle' => $dbh });

 $st = $dbh_sess->prepare("delete from sessions where id='$sid'");
 $st->execute();

Код:
MySql->
id CHAR(32) NOT NULL PRIMARY KEY, a_session TEXT NOT NULL

не удаляет нифига, не выдает ошибок, скрипт дальше продолжает работать.

Почему не удаляет?
« Последнее редактирование: 03-06-2010 11:01 от Алексей1153++ » Записан
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 03-06-2010 11:08 » 

а commit; ты выполняешь?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
vetlblya
Гость
« Ответ #2 : 03-06-2010 11:22 » 

а commit; ты выполняешь?

никогда про него не слышал. гугль не разъяснил.  куда его ставить?

Добавлено через 20 минут и 6 секунд:
нашел! так надо делать?
Код:
 Perl
$dbh = DBI->connect("dbi:mysql:database=db:host=host", 'root', 'pass', {PrintError => 0, AutoCommit => 0 });

$session = CGI::Session->new('driver:mysql', $sid, { 'Handle' => $dbh_sess });

$query = "delete from sessions where id='$sid'";
$dbh->begin_work();
$rv = $dbh->do($query);
$dbh->commit();

все равно не удАляет
« Последнее редактирование: 03-06-2010 11:42 от vetlblya » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 03-06-2010 11:46 » 

$query1 = "select * from sessions where id='$sid'";
показать результат;
$query = "delete from sessions where id='$sid'";
$query2 = "delete from sessions where id='$sid'";
показать результат;
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
vetlblya
Гость
« Ответ #4 : 03-06-2010 12:05 » 

$query1 = "select * from sessions where id='$sid'";
показать результат;
$query = "delete from sessions where id='$sid'";
$query2 = "delete from sessions where id='$sid'";
показать результат;

селект выполняется на "ура". а вот удаляться из скрипта не хочет. через phpMyAdmin sql-запросом запись удаляется
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 03-06-2010 12:22 » 

какой select выполнятся на ура?
первый или второй, и что такое "ура"?

AutoCommit => 0 ничего не говорит?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
vetlblya
Гость
« Ответ #6 : 03-06-2010 12:31 » 

что такое "ура"?
http://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%B0_%28%D0%B1%D1%83%D0%BA%D0%B2%D0%B0%29  )))))))

какой select выполнятся на ура?
оба.

AutoCommit => 0 ничего не говорит?

как я понял из виденного мной примера при использовании $dbh->commit() как раз ставиться 0

Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 03-06-2010 12:46 » 

установи в true autocomit и повтори запрос.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
vetlblya
Гость
« Ответ #8 : 03-06-2010 12:52 » 

установи в true autocomit и повтори запрос.

пробовал, не выходит

Добавлено через 28 минут и 50 секунд:
при использовании $session = CGI::Session->new('driver:mysql', $sid, { 'Handle' => $dbh_sess })  для удаления записей в бд надо использовать $session->delete()

« Последнее редактирование: 03-06-2010 13:21 от vetlblya » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 03-06-2010 16:02 » 

vetlblya, распечатай $query. Думаю, что $sid у тебя равен undef...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines