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

Jak provést více dotazů mysql společně v PHP?

mysql_query() odešle jedinečný dotaz (více dotazů není podporováno) .To je výchozí chování. Pro toto však existuje bypass.

Samotný výsledný kód prvního dotazu však bude dán jako výstup mysql_query() pokud to uděláte.

Musíte pouze předat příznak 65536 jako 5. parametr mysql_connect. příznak je definován v příznaky klienta MySQL .

#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */

Upravte tedy mysql_connect() kód odpovídající tomuto:

mysql_connect($host, $username, $password, false, 65536);

Upozornění:

  1. Obdržíte výsledek mysql_query($query) pro první dotaz pouze v daném $query . Můžete zkusit zřetězit 131072 s 65536 pro získání více výsledků.
  2. Toto nebude fungovat na PHP <4.3.0
  3. Toto nebude fungovat, pokud sql.safe_mode je nastaven jako 1 v php.ini

Další alternativou bude použití mysqli místo mysql knihovna. Podporuje $mysqli->multi_query() a poskytuje výstup v rámci pole pro každý dotaz.



  1. Optimalizace Oracle CONNECT BY při použití s ​​klauzulí WHERE

  2. aktualizace pomocí smyčky for v plsql

  3. MySQL – podmíněná omezení cizích klíčů

  4. optimalizovat dotaz na počet mysql