Menú Principal

query-update

Iniciado por d91, 28 Septiembre 2014, 05:21 AM

0 Miembros y 1 Visitante están viendo este tema.

d91

Hola, como han estado, tengo un problemita al declarar la consulta para realizar un update a una tabla de mysql me da error no se que le hace falta, el error dice... Unable to prepare statement: 1, near "=": syntax error line 12 y esta linea es:
Código (php) [Seleccionar]
$sql = "UPDATE TB_CLIENTE SET NOMBRE_CLIENTE='".$name."', APELLIDO_CLIENTE='".$apellido."', DIRECCION_CLIENTE='".$direccion."' WHERE ID_CLIENTE='$ident'";
agradecere sus aportes

gAb1

Hola, tal vez este sea el problema:

Código (php) [Seleccionar]
$sql = "UPDATE TB_CLIENTE SET NOMBRE_CLIENTE='".$name."', APELLIDO_CLIENTE='".$apellido."', DIRECCION_CLIENTE='".$direccion."' WHERE ID_CLIENTE='"$ident"'";
                                                                                                                                                 ^ Aqui


Olvidaste poner las dobles comillas dentro de las comillas normales.

Aunque si $ident es integer no uses comillas (debería serlo ya que seguramente sea auto increment):

Código (php) [Seleccionar]
WHERE ID_CLIENTE=$ident";

Si no funciona, quita las comillas dobles.

Suerte!

MinusFour

Estás usando sentencias parametrizadas, necesitas hacer un bind al parametro.

gAb1

Exacto, las sentencias preparadas no deberían hacerse asi directamente. Esta es la manera correcta:

(Y no es necesario crear una variable que contenga la sentencia.)

Código (php) [Seleccionar]
if ($insert_stmt = $mysqli->prepare("UPDATE TB_CLIENTE SET NOMBRE_CLIENTE = ?,
APELLIDO_CLIENTE = ?,
DIRECCION_CLIENTE = ?
WHERE ID_CLIENTE = ?")) {

$insert_stmt->bind_param('sssi', $name, $apellido, $direccion, $ident);

// Execute the prepared query.
if (! $insert_stmt->execute()) {
//header('Location: /dir/to/error.php?err=Some error message');
//printf("Error: %s.\n", $insert_stmt->error);
}
}


Tambien lo puedes hacer sin el if, los quitas y listo :)