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

Jak v PHP s PDO zkontrolovat finální parametrizovaný dotaz SQL?

Takže si myslím, že konečně odpovím na svou vlastní otázku, abych měl úplné řešení pro záznam. Ale musím poděkovat Benu Jamesovi a Kailash Badu, kteří k tomu poskytli vodítka.

Krátká odpověď
Jak zmínil Ben James:NE .
Úplný SQL dotaz na straně PHP neexistuje, protože dotaz s tokeny a parametry jsou odesílány samostatně do databáze. Úplný dotaz existuje pouze na straně databáze.

Ani pokus o vytvoření funkce pro nahrazení tokenů na straně PHP nezaručí, že proces nahrazení bude stejný jako proces SQL (záludné věci jako token-type, bindValue vs bindParam, ...)

Řešení
Na tomto místě rozvádím odpověď Kailashe Badu. Zaprotokolováním všech SQL dotazů můžeme vidět, co je skutečně spuštěno na serveru. S mySQL to lze provést aktualizací my.cnf (nebo my.ini v můj případ se serverem Wamp) a přidáním řádku jako:

log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]

Prostě to nespouštějte v produkci!!!



  1. Během instalace PostgreSQL se nezdařilo načíst moduly SQL do clusteru databáze

  2. Použití rozšířených událostí k protokolování zastaralých funkcí používaných v instanci serveru SQL (příklad T-SQL)

  3. Jak generovat skripty pro opětovné vytvoření omezení cizích klíčů v databázi SQL Server - SQL Server / Výukový program TSQL, část 73

  4. Mám použít vložený sloupec varchar(max) nebo jej uložit do samostatné tabulky?