Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/01/2012, 13:30
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: PDO e inyección SQL

Lo que pasa es que al usar ? como placeholder, PDO lo escapa y tu consulta queda así:
Código SQL:
Ver original
  1. INSERT INTO una_tabla (campo) VALUES ('NOW()')

Tienes que entender que la idea de usar prepared statements, no es solamente la de escapar los carácteres, si no más bien lo que hace internamente PDO es mandar el query a tu BDD, compilar el query y luego esperar los valores de entrada.

Es por eso que no se pueden poner funciones como NOW() ya que no hay optimización, en ese caso ponlo directamente en tu query:

Código SQL:
Ver original
  1. INSERT INTO TABLE (campo) VALUES (NOW())

La idea de usar prepared statements es de usarlos cuando necesites enviar variables de entrada o salida y tener la mayor optimización posible.

Saludos.