Perl DBI: как увидеть неудачный запрос со связанными значениями?

Это стандартный пример вставки из руководства DBI :

     my $query = q{
       INSERT INTO sales (product_code, qty, price) VALUES (?, ?, ?)
     };
     my $sth = $dbh->prepare($query) or die $dbh->errstr;
     while (<>) {
         chomp;
         my ($product_code, $qty, $price) = split /,/;
         $sth->execute($product_code, $qty, $price) or die ($query . " " . $dbh->errstr);
     }
     $dbh->commit or die $dbh->errstr;

Я немного изменил его, поэтому могу посмотреть, какой запрос завершился ошибкой ( die ($ query. "". $ dbh-> errstr) ). И все же хотелось бы увидеть запрос со связанными значениями (как он выполнялся). Как это получить?


Edit

Кстати, я нашел неудобный способ увидеть запрос со связанными значениями: вы должны сделать синтаксическую ошибку в запросе. Например, если я изменю приведенный выше запрос следующим образом:

     my $query = q{
       xINSERT INTO sales (product_code, qty, price) VALUES (?, ?, ?)
     };

Я вернул его, как и хотел:

Выполнение DBD :: mysql :: st не выполнено:У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'xINSERT INTO sample (product_code, qty, price) VALUES (' 1 ',' 2 ',' 3 ')' в строка 1

Иногда это действительно помогает. По крайней мере, со мной.

6
задан w.k 24 June 2011 в 18:59
поделиться