C'è un modo per vedere una query preparata in quanto verrà eseguita sul database? [duplicare]

StackOverflow https://stackoverflow.com/questions/305179

  •  08-07-2019
  •  | 
  •  

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"
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top