Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/06/2013, 11:57
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error al hacer update

Esto ya lo preguntaste en el foro de MySQL (http://www.forosdelweb.com/f86/error-bd-1061061/), donde te dije expresamente que para poder ver cuál es el error tienes que capturar la sentencia una vez que se reemplazan las variables por los datos que estas contienen.
De haber hecho lo que te indiqué, lo hubiésemos resuelto en un instante, sin necesidad de que replicaras el problema en este foro.

De todos modos, algo se puede ver en el código SQL embebido (si embebido, cosa que también te expliqué en el post del otro foro), y es simplísimo: Estás metiendo código mál escrito en la variable $password... Con lo que el problema es exactamente como yo lo suponía.
¿Donde?
Bueno, luego del valor del password, estás poniendo una coma de más.
Las comas en el SET son para separar los diferentes campos y asignaciones que se realizan... el último valor no debe terminar en coma. Genera un error de sintaxis.
Es decir:
Código PHP:
Ver original
  1. $passwordSql = $this->data["password"] ? "password = :password " : "";
Además, si ese valor es condicional, es decir si puede no existir, la creación de la sentencia debe incluir una validación para poder incluir o no la coma después del username... cosa que tampoco estás haciendo.
En otras palabras, es una forma de creación incorrecta de la sentencia SQL embebida en el PHP.
Código PHP:
Ver original
  1. $passwordSql = $this->data["password"] ? ", password = :password " : "";
  2. $sql = "UPDATE " . $this->TBL_MEMBERSFINAL . " SET
  3. logoimagen = :logoimagen,
  4. nombreempresa = :nombreempresa,
  5. descripcion = :descripcion,
  6. categoriapro0 = :categoriapro0,
  7. categoriapro1 = :categoriapro1,
  8. categoriapro2 = :categoriapro2,
  9. pagweb = :pagweb,
  10. firstName = :firstName,
  11. lastName = :lastName,
  12. emailAddress = :emailAddress,
  13. provincia = :provincia,
  14. poblacion = :poblacion,
  15. calle = :calle,
  16. numero = :numero,
  17. cifnifnie = :cifnifnie,
  18. username = :username ";
  19. if($passwordSql != "") {$sql .= $passwordSql;};
  20. $sql .= "WHERE id = :id";
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 29/06/2013 a las 12:07