PDO i MySQL – drobny problem przy deploy’u aplikacji

Notka pisana raczej jako “note-to-self”, ale może ktoś kiedyś również będzie miał z tym problemy.

Po wrzuceniu aplikacji na serwerze (już po użeraniu się z DirectAdminem i niedziałającym PDO), aplikacja zamiast kulturalnie porozmawiać, postanowiła się wywrócić i krzyczeć, że “There is already an active transaction”, czyli że niby już rozpoczęta została wcześniej jakaś transakcja. Problem w tym, że kod poprawnie działał na trzech, całkowicie niezależnych maszynach deweloperskich. Coś więc było nie tak. Teoretycznie rozwiązanie jest podane w manualu PHP, jednak nie w sposób bezpośredni. Rozwiązanie jest banalne:

1
$dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);

Nauczyło nas to jeszcze, że warto umieszczać w aplikacji następującą klauzulę:

1
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

dzięki której PDO zgłaszając błędy, robi to w sposób bardziej zrozumiały.

0 Responses to “PDO i MySQL – drobny problem przy deploy’u aplikacji”


  1. No Comments

Leave a Reply