Petite note rapide :

PDO pour la nième fois m'à fait des misères ce matin. Je devrais préciser PDO + driver Mysql car je ne saurait dire lequel des deux est coupable dans l'histoire.

Si PDO est récent et donc sa manipulation nouvelle. Certes c'est normal que l'on se retrouve confronter à des erreurs " de débutant ". Mais ce matin j'ai passé une heure à cherché le pourquoi ça marche pas.

Il y a peu j'avais été confronter à une requête sql qui ne retournait rien. Après avoir cherché dans la doc PHP. l'instruction PdoStatement->closeCursor() s'avérait être la solution. Autant pour moi c'était clairement indiquer dans la doc.
Aujourd'hui le même BUG se présente. Un select qui ne retourne rien et bien entendu il est éxécuté après une suite de select. Si je le place en tête de liste, il fonctionne mais les suivants ne fonctionnent plus. Ce coup-ci je n'ai pas fait l'idiot et j'avait bien mis des closeCursor() après chaque requête (même celle qui lise la liste complète de résultat).

Alors que faire dans ce cas ? Après plus d'une heure j'ai trouver une solution. faire un unset(pdoStatement) derrière le closeCursor() et comme par magie tout est revenu dans l'ordre.

J'apprécie travailler avec PDO globalement même si certaine fonctionnalité sont abstente oou d'autre parraisse fonctionner étrangement voir certainre qui diverge complètement de la doc. Je doit avoir que je commence un peu à fatiguer de ce genre de mauvaise surprise.

Pourquoi je rale ? Parceque pendant que je cherchait une solution à ce bug j'ai remis en cause réellement l'utilisation de PDO dans mon application. et après avoir trouver la solution j'ai repris tout mon code (quelques dizaine de millier de lignes) afin de rajouter des unset() après chaque requête. J'ai maintenant la crainte qu'un nouveau bug PDO m'oblige à revoir mon architecture ou changer de driver.

Résultat ma confiance en PDO diminue d'un cran et c'est bien dommage.