MySQL Perl и проблем с Update

2 отговора 0 прегледа
#1

MySQL Perl и проблем с Update

Версията на MySQL:
5.0.21-Debian_3-log
Имам един скрипт на Перл:
И в него се изпълнява следната заявка:
В отговор на:


$query = "Update Everywhere set MType='99',Taken='99', Transcribed='1',Sent='1' where FileName ='$file' ";
$sth = $dbh->prepare($query);
$sth->execute || die("Couldn't exec sth!");
print STDERR "Rerecord query $query\n";



STDERR е пренасочен към файл:
В отговор на:


Rerecord query Update Everywhere set MType='99',Taken='99', Transcribed='1',Sent='1' where FileName ='35131172530690'



И всичко е перфектно само дето ъпдейт няма.
Същата заявка от конзола, или от някой от туловете - ъпдейтва.
Опит да прихвана грешки или предупреждения:
$dbh->err
$dbh->errstr
dbh->{'mysql_error'}
dbh->{'mysql_errno'} (може би е трябвало да ползвам mysql_errno())
Та всички опити да прихване грешка - водят до 0 или ""
И се чудя каква е възможната грешка - по скоро как бих могъл да я хвана.

Логвам се с еднакви user name / password - и от скрипта и от конзола.
Скрипта преди това се свързва с DB, прави си заявки и т.н.

Bеer? Mоre?
Плацебото

Редактирано от bira_more на

Отговор
в отговор на bira_more #2

Ех тези задклавиатурни устройства :(

Проблема се оказа в задклавиатурното устройство.

Скрипта дълъг. Писан от един куп хора, без никакви бележки по него.
И в същност се оказа че аз правя update, ама малко по късно правя второ update, което възстановява статуквото.

Нищо де - поне сега ако някой има нужда от дебъг в Perl на заявки към MySQL - свиркайте.

А бе кога най-накрая ще почнат да правят читави задклавиатурни устройства не мога да разбера. Монитори като слънце, процесори като свръх нова (толкова греят поне), дискове - целия Аз съм на всеки километър може да запише човек (не че ще го направя де), а задклавиатурните устройства все същите.

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #3

Re: Ех тези задклавиатурни устройства :(

проблемът можеше и да е ако при връзка към базата беше зададено AutoCommit => 0

П.П.
дано си спомням правилно - не съм писал на perl от години

40
Отговор