Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как получить строку запроса после выполнения execute? / 6 сообщений из 6, страница 1 из 1
08.12.2004, 17:28
    #32819301
Как получить строку запроса после выполнения execute?
Проблема такая необходимо в лог(таблица logs) записать sql запрос...
делаю так:
my $sql = "insert into item(cardid, shopid, name, price, bonus, date, account) values(?,?,?,?,?,current_timestamp,?)";

my $sth = $dbh->prepare($sql);
$sth->execute($id, $shop, $name, $price, ($bonusbuy eq "")?0:1, $account);

т.е DBI подставляет вместо "?" значения $id, итд, таким образом подготавливается запрос и выполняется...

вот мне нужно этот подготовленный запрос запихнуть в лог...
не подскажите как это сделать... Может там метод есть у $dbh который возвращает строку запроса...
...
Рейтинг: 0 / 0
08.12.2004, 18:03
    #32819409
knockler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить строку запроса после выполнения execute?
а почему нельзя сначала собрать выражение, записать его куда надо, а только потом сдавать в $sth:
Код: plaintext
1.
2.
3.
my $sql = "insert into item(cardid, shopid, name, price, bonus, date, account) values('" . $id . .... ."')";
print LOG $sql; # ну или куда там писать...
my $sth = $dbh->prepare($sql);
Вокруг переменных - одинарные кавычки (если вдруг не очень заметно).

Если был неправ - объясните, в чём... Спасибо
...
Рейтинг: 0 / 0
08.12.2004, 18:14
    #32819437
Как получить строку запроса после выполнения execute?
Понятно, что так можно, но это криво.
К тому же так делать не принято, и точки зрения безопасности - не лучший вариант. Там точно есть какой-то метод только вот какой...?
...
Рейтинг: 0 / 0
08.12.2004, 18:16
    #32819445
knockler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить строку запроса после выполнения execute?
"кривое" записать в лог, "прямое" - выполнять
...
Рейтинг: 0 / 0
08.12.2004, 18:48
    #32819488
Как получить строку запроса после выполнения execute?
ну :) ... все энто ясно было с самого начала...
Поставим иначе вопрос, ...

Есть ли метод у объекта $dbh, который возвратит обработанный запрос?
...
Рейтинг: 0 / 0
08.12.2004, 21:31
    #32819646
sky2k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить строку запроса после выполнения execute?
Врятли такое сделаешь
запрос после prepare хранится уже на сервере
во время execute выполняется на основе параметров

--
http://jcatki.no-ip.org/c++/bart.jpg
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как получить строку запроса после выполнения execute? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]