C'è un modo per vedere una query preparata in quanto verrà eseguita sul database? [duplicare]
Domanda
Possibile duplicato:
Dichiarazioni preparate alla DOP
Sto usando l'estensione mysqli in PHP e mi chiedo, c'è forse un modo per vedere una query preparata in quanto verrà eseguita sul server, ad es. La query è simile a questa
select * from table1 where id = ? and name = ?
ma voglio vedere la query dopo aver inserito i valori, in questo modo:
select * from table1 where id = 20 and name = "John"
Soluzione
Duplicato di Dichiarazioni preparate DOP
Risposta breve: no. Una query preparata non verrà mai convertita nella query prevista. Viene eseguito direttamente dal server di database. Puoi usare il log delle query di mysql o la funzione non documentata di PDO debugDumpParams
, ma entrambi sono solo approssimazioni.
Altri suggerimenti
Attiva registrazione query mysql e lo farà registra tutte le query in un file di testo che puoi esaminare.
Vedi dove? Se è il tuo codice, hai la query e hai i parametri preparati, registrali separatamente o sostituisci nella stringa di query originale. Se l'associazione non riuscirà, verrà visualizzato un errore, altrimenti dovresti aspettarti che gli stessi valori siano "riempiti". come le hai specificate.
È la maggior parte delle volte che sto eseguendo il debug di mysql quires:
$ q = " seleziona * dalla tabella1 dove id = ". $ id. " e name = ". $ name; echo $ q;
L'output genera tutte le variabili assegnate alla query.
Spero di averti capito esattamente, cosa volevi.