• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Error con una consulta SQL (SOLUCIONADO)

Registrado
2010/06/21
Mensajes
5.652
Sexo
Macho
Hola, estoy migrando algunas cosas hechas en PHP dese un servidor Linux a uno con Windows y al parecer no
son totalmente compatibles las sintaxis de ambas versiones. La cosa es que me falla esta ultima linea:

La versión de MySql es la 5.6


PHP:
date_default_timezone_set('America/Santiago');

$opc_cerrar = $_POST['opt_ID'];
$termino = date('d m Y h:i A');

if(! $link )
{
  die('No se pudo conectar: ' . mysql_error());
}

$sql = 'UPDATE estado=Cerrado, termino="'.$termino.'" WHERE ID_soporte ="'.$opc_cerrar.'"';
el mensaje que arroja es:

Could not update data: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"23 09 2014 10:26 AM" WHERE ID_soporte ="178"' at line 1

el PHP Server es PHP: 5.5.15 el servidor es Xampp 1.8.3

Ayuda!! :)
 
Última edición:
M

MidnightDream

Guest
No le falta una comilla a Cerrado? Prueba haciendo el string con doble comilla en lugar de una simple.
 
Registrado
2010/06/21
Mensajes
5.652
Sexo
Macho
No le falta una comilla a Cerrado? Prueba haciendo el string con doble comilla en lugar de una simple.
lo tenía así como dices tu, pero al agregar las comillas el error crece;

Código:
$sql = 'UPDATE estado="Cerrado", termino="'.$termino.'" WHERE ID_soporte ="'.$opc_cerrar.'"';
Could not update data: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Cerrado", termino="23 09 2014 10:45 AM" WHERE ID_soporte ="178"' at line 1
 
M

MidnightDream

Guest
Sólo para descartar, podrías ingresarlo como variable a la string: $estado="Cerrado";
 

IsraelSKA

Huevon sin Vida
Registrado
2005/05/24
Mensajes
28.431
Sexo
Macho
está mal la consulta


Tu consulta:

UPDATE estado=Cerrado, termino="xxxxxx" WHERE ID_soporte ="'yyyyyy"

Falta el nombre de la tabla (qué tabla quieres actualizar??)
Falta la palabra clave "set".
La palabra "cerrado" es un nombre de columna? si no es así, falta cerrarlo entre comilla

Ejemplo:

UPDATE NombreTabla set estado='Cerrado', termino='xxxxxx' WHERE ID_soporte ='yyyyyy'

PHP:
$sql = 'UPDATE NombreTabla set estado="Cerrado", termino="'.$termino.'" WHERE ID_soporte ="'.$opc_cerrar.'"';


Si no te funciona con comilla doble, prueba con comilla simple.
 
Registrado
2010/06/21
Mensajes
5.652
Sexo
Macho
está mal la consulta


Tu consulta:

UPDATE estado=Cerrado, termino="xxxxxx" WHERE ID_soporte ="'yyyyyy"

Falta el nombre de la tabla (qué tabla quieres actualizar??)
Falta la palabra clave "set".
La palabra "cerrado" es un nombre de columna? si no es así, falta cerrarlo entre comilla

Ejemplo:

UPDATE NombreTabla set estado='Cerrado', termino='xxxxxx' WHERE ID_soporte ='yyyyyy'

PHP:
$sql = 'UPDATE NombreTabla set estado="Cerrado", termino="'.$termino.'" WHERE ID_soporte ="'.$opc_cerrar.'"';


Si no te funciona con comilla doble, prueba con comilla simple.
Ohhh!! ahí si :D no se como cresta funciona en el otro servidor, revisé el codigo en el server con Linux y funciona asi, sin el SET o_O

pero me funcionó bien así como dijiste!!

Muchas gracias!!![DOUBLEPOST=1411483001,1411482959][/DOUBLEPOST]Gracias tambien @MidnightDream
 
Registrado
2006/01/08
Mensajes
2.090
Ohhh!! ahí si :D no se como cresta funciona en el otro servidor, revisé el codigo en el server con Linux y funciona asi, sin el SET o_O

pero me funcionó bien así como dijiste!!

Muchas gracias!!![DOUBLEPOST=1411483001,1411482959][/DOUBLEPOST]Gracias tambien @MidnightDream
Raro que funcione de esa forma ya que el error es a nivel de sintaxis SQL, el código no tiene como saber a que tabla afecta la sentencia...

De todas formas, que bueno que resolviste tu drama.
 
Registrado
2010/06/21
Mensajes
5.652
Sexo
Macho
Raro que funcione de esa forma ya que el error es a nivel de sintaxis SQL, el código no tiene como saber a que tabla afecta la sentencia...

De todas formas, que bueno que resolviste tu drama.
Si, es extraño... aún no doy de baja el otro server, entré a comprobar y el código no tiene el SET, pero funciona :/ ¿será la versión de MySQL?
 
Arriba