Ver Mensaje Individual
  #26 (permalink)  
Antiguo 20/06/2012, 12:56
Avatar de jotaincubus
jotaincubus
 
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: porque no me actualiza un campo con php

Claro que te va a funcionar directamente en MySql... El error es tuyo ya que como dige @GatorV no es posible pasar sintaxis SQL directamente al execute de PDO. Tratare de explicarte para que sepas en si cual es el error:

1. PREPARE -> Esto le dice a PDO que le envie a MySQL el codigo tal cual esta en tu codigo PHP aun con los PLACEHOLDERS (?) osea a MySQL le llega esto UPDATE anuncio SET campo1 = ?, campo2 = ? WHERE id = ? con los signos de interrogacion y todo

2. MySQL compila ese codigo nativamente y lo guarda en memoria, osea que para MySQL eso es codigo SQL nativo asi que lo tiene en un estado de reposo y le responde a PDO diciendole "Vea señor PDO yo ya compile el codigo nativo SQL, pero usted me mando unos PLACEHOLDERS (?) ahora si mandeme los datos correspondientes a los PLACEHOLDERS" que ya no pueden ser codigos SQL porque yo ya compile asi que espero datos como tal y no sentencias SQL".

3. EXECUTE -> al PDO recibir la respuesta de MySQL dice "listo señor MySQL EJECUTE la sentencia que tiene ya compilada con los datos que le mando en este array".

POR QUE NO FUNCIONA

Porque tu al preparar ya debiste haber enviado todo el codigo SQL al motor asi que el en el EXECUTE no va a tomar el NOW() o el CURRENT_TIMESTAMP() como funcion de MySQL sino como una cadena de caracteres normal, ya que el codigo MySQL fue compilado desde el PREPARE.

Por eso debes primero modificar lo de la INSTANCIA de la clase $db o $pdo no se cual sea la instancia real y segundo debes colocar el NOW() desde el PREPARE y no desde el EXECUTE
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???