Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd braku kolejności pakietów podczas wywoływania przechowywanego proc MySQL

Po spędzeniu wielu godzin na próbach wyizolowania części mojego kodu w celu rozwiązania tego problemu zauważyłem, że błąd zniknął po ustawieniu flagi ATTR_EMULATE_PREPARES na true.

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

To mówi PDO, aby emulował przygotowane instrukcje zamiast natywnie przez MySQL. Z tego, co czytałem, generalnie zaleca się wyłączenie tej flagi (domyślnie jest to prawda), jeśli używasz najbardziej aktualnej wersji MySQL i PHP. Więcej informacji na ten temat znajdziesz w tym WIĘC artykuł .

Uważam, że jest to błąd w MySQL (miałem problem do wersji 5.6.17). Nie ma zbyt wielu dyskusji na temat tego konkretnego problemu, więc miejmy nadzieję, że zaoszczędzi to komuś innemu godzin rozwiązywania problemów. Problem jest również omawiany na tej stronie z błędami MySQL , ale opublikowane rozwiązanie nie pomogło mi w mojej sytuacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak powinny być przechowywane IP przekonwertowane ip2long w MySQL?

  2. Różnica daty/czasu w PHP/MySQL

  3. Znaczenie backticku wokół nazwy tabeli w zapytaniu MySQL

  4. Odpowiednik funkcji SQLServer SCOPE_IDENTITY() w mySQL?

  5. MYSQL TINYBLOB kontra LONGBLOB