Moje boje z SQLSTATE[HY010]: Function sequence error: 0

PDO używające sterowników ODBC raczy nas od czasu do czasu wszystkomówiącymi komunikatami “SQLSTATE[HY010]: Function sequence error: 0″.

Z doświadczenia wiem, że ma to miejsce przynajmniej w kilku (jak nie kilkunastu) przypadkach. Będę je tu wypisywał w miarę, jak będą mi dokuczać ;)

1. Niby prosta sprawa:
$stmt = $pdo->prepare('SELECT * FROM tabela WHERE kol = :kol');
$params = array('kol'=> $kol);
$stmt->execute($params);

Ostatni wiersz powoduje błąd. kol jest integer. Co ciekawe, na innym komputerze, wszystko działa. Profiler pokazuje 1, zamiast spodziewanej wartości.
Zastąpienie $kol, wartością z palca, np.: 1234, powoduje, że błąd znika.
Rozwiązanie: tu sprawa jest prosta, prawdopodobnie, $kol nie przekazuje integer (np.: 1234.0 zamiast 1234) aby to sprawdzić, trzeba rozwiązać problem typu $kol. Można to sprawdzić rzutując (int)$kol – błąd zniknie – wszystko jasne. Błąd nie znika? Jaki błąd?? ;)

Tagi: , ,

Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s


Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.