Porra para o PHP

O PHP tem um erro merdoso nas interfaces PDO/MySQL e MySQLi.
Passei o dia todo a resolver um problema num programa por causa desse erro.
Felizmente, esse erro do PHP não existe na interface tradicional com o MySQL, e assim consegui contornar o problema.

Descrição do BUG

Tanto a interface PDO/MySQL como a MySQLi não permitem a chamada de Stored Procedures que tenham parâmetros de saída (tipo OUT). As Stored Procedures até funcionam, mas não devolvem valores.

Eu já sabia desse erro há uns meses e arranjei uma solução na net que contornava o problema.

Só que eu precisava de executar um ciclo de chamadas a essa Stored Procedure. Mas só a primeira chamada é que devolvia valores nos parâmetros de saída. A segunda chamada e seguintes não devolviam nada.

Em resumo:

Assim, e depois de muito penar:

  • ter a certeza de que o problema não era do meu código
  • experimentar (imensas) soluções alternativas
  • tentar compilar uma versão de desenvolvimento (snap) do PHP
  • ter chegado a pensar que tinha que desistir do PDO, e reformular todo o código (dezenas de programas, semanas de trabalho)

decidi experimentar chamar a SP com a interface MySQL simples (não orientada a objectos). E funcionou!

Tenho tudo com PDO excepto a tal chamada cíclica à SP com parâmetros de saída.

Foram 12 horas perdidas. Foda-se para esta merda, mas enfim… acabou em bem.


Publicado

em

,

por

Etiquetas:

Comentários

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *