sql >> Databáze >  >> RDS >> Mysql

Chyba paketů mimo pořadí při volání MySQL uloženého proc

Po mnoha hodinách, kdy jsem se snažil izolovat části mého kódu za účelem vyřešení tohoto problému, jsem si všiml, že chyba zmizela po nastavení příznaku ATTR_EMULATE_PREPARES na hodnotu true.

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

To říká PDO, aby emulovalo připravené příkazy namísto nativně MySQL. Z toho, co jsem četl, se obecně doporučuje tento příznak vypnout (ve výchozím nastavení je to pravda), pokud používáte nejaktuálnější verzi MySQL a PHP. Více informací o tom najdete v tomto SO článek .

Domnívám se, že se jedná o chybu MySQL (tento problém jsem měl až do verze 5.6.17). O tomto konkrétním problému se moc nediskutuje, takže doufejme, že to někomu jinému ušetří hodiny řešení problémů. Problém je také diskutován na této stránce s chybami MySQL , ale zaslané řešení mi v mé situaci nepomohlo.



  1. Hibernate OnDelete Cascade nefunguje pro MySql, ale funguje na postgres a Ms-Sql

  2. jednoduchý způsob, jak sečíst výsledek z UNION v MySql

  3. Jak mohu vymazat mezipaměť dotazů SQL Server?

  4. Jak přejmenovat název sloupce nebo název tabulky v SQL Server - SQL Server / Kurz T-SQL, část 36