Это стандартный пример вставки из 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)
).Тем не менее я хотел бы видеть запрос со связанными значениями (как он был выполнен).Как это получить?
Редактировать
Кстати, я нашел неуклюжий способ видеть запрос со связанными значениями: вы должны сделать синтаксическую ошибку в запросе,Например, если я изменил приведенный выше запрос следующим образом:
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
Иногда это действительно помогает.По крайней мере, мне это удалось.