2008-11-20 6 views
5

Duplicar posible:
PDO Prepared Statements¿Hay alguna manera de ver una consulta preparada, ya que se ejecutará en la base de datos?

estoy usando la extensión mysqli en PHP y me pregunto, ¿hay posiblemente alguna manera de ver una consulta preparada, ya que será ejecutado en el servidor, por ejemplo La consulta es algo como esto

select * from table1 where id = ? and name = ? 

pero quiero ver la consulta después de que los valores se rellenan, como esto:

select * from table1 where id = 20 and name = "John" 
+0

¿Qué sucede cuando var_dump() su objeto mysqli_stmt? –

Respuesta

2

duplicados de PDO Prepared Statements

Respuesta corta: no. Una consulta preparada nunca se convertirá a la consulta que espera. Se ejecuta directamente por el servidor de la base de datos. Puede usar el registro de consultas de mysql o la función no documentada de PDO debugDumpParams, pero ambas son solo aproximaciones.

+2

En realidad, si habilita el registro de consultas MySQL, * no * registra una consulta preparada con valores de parámetros interpolados en ella. ¡Chiflado! –

+0

Cosas raras que. – troelskn

0

Ver dónde? Si es su código, tiene la consulta y tiene los parámetros preparados, regístrelos por separado o reemplácelos en la cadena de consulta original. Si el enlace falla, obtendrá un error, de lo contrario, debe esperar que se "llenen" los mismos valores que los especificó.

0

Es la manera la mayor parte de las veces estoy depuración cuadernillos MySQL:...

$ q = "SELECT * FROM tabla1 donde id =" $ id "y el nombre =" $ nombre; echo $ q;

La salida genera todas las variables asignadas a la consulta.

Espero que te haya entendido exactamente, lo que querías.

+0

Creo que quiere decir cuando prepara "select * from table1 where id =? And name =?" y luego lo ejecuta proporcionando los parámetros $ id y $ name. –

+0

A menos que '$ name' sea un número, esta consulta fallará debido al parámetro de cadena sin comillas. – T30

Cuestiones relacionadas