Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Necesito ayuda -error #1064 - You have an error in your SQL syntax

Estas en el tema de Necesito ayuda -error #1064 - You have an error in your SQL syntax en el foro de Bases de Datos General en Foros del Web. Hola al crear una consulta desde phpmyadmin para crear una tabla con sus campos me da ese error, tengo php5 en el host, el codigo ...
  #1 (permalink)  
Antiguo 23/09/2010, 04:46
 
Fecha de Ingreso: marzo-2006
Mensajes: 216
Antigüedad: 18 años
Puntos: 0
Necesito ayuda -error #1064 - You have an error in your SQL syntax

Hola al crear una consulta desde phpmyadmin para crear una tabla con sus campos me da ese error, tengo php5 en el host, el codigo que uso es:

Código PHP:
CREATE TABLE `restaurantes` (
`
restaurante_IDmediumint(3NOT NULL auto_increment,
`
restaurante_longvarchar(30NOT NULL default ‘0',
`restaurante_latvarchar(30NOT NULL default ‘0',
`restaurante_nombrevarchar(50NOT NULL default ”,
`restaurante_comenttext NOT NULL,
`
restaurante_marcadorchar(2NOT NULL default ”,
`restaurante_cocinavarchar(50NOT NULL default ”,
`restaurante_direccvarchar(50NOT NULL default ”,
`restaurante_urlvarchar(50NOT NULL default ”,
`restaurante_preciovarchar(10NOT NULL default ”,
`restaurante_ipvarchar(15NOT NULL default ”,
`restaurante_monthsmallint(2NOT NULL default ‘0',
`restaurante_daysmallint(2NOT NULL default ‘0',
`restaurante_yearsmallint(2NOT NULL default ‘0',
`restaurante_timevarchar(15NOT NULL default ”,
`restaurante_valoracionchar(2NOT NULL default ‘0',
PRIMARY KEY (`restaurante_ID`)
TYPE=MyISAM AUTO_INCREMENT=
Mesaje completo del error:
#1064 - 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 '‘0', `restaurante_lat` varchar(30) NOT NULL default ‘0', `restaurante_nomb' at line 3

Gracias, espero su ayuda
  #2 (permalink)  
Antiguo 23/09/2010, 04:49
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: Necesito ayuda -error #1064 - You have an error in your SQL syntax

Es por las comillas:

Código:
 NOT NULL default 0',
Fijate que usas unas "torcidas" para abrir y unas derechas para cerrar...
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 23/09/2010, 04:55
 
Fecha de Ingreso: marzo-2006
Mensajes: 216
Antigüedad: 18 años
Puntos: 0
Respuesta: Necesito ayuda -error #1064 - You have an error in your SQL syntax

¿cuales son las buenas? soy novicio en estas lides
  #4 (permalink)  
Antiguo 23/09/2010, 05:07
 
Fecha de Ingreso: marzo-2006
Mensajes: 216
Antigüedad: 18 años
Puntos: 0
Respuesta: Necesito ayuda -error #1064 - You have an error in your SQL syntax

las cambie las torcidas por derechas, y nada mas error de lo mismo.



#1064 - 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 ''restaurantes' ( 'restaurante_ID' mediumint(3) NOT NULL auto_increment, 'resta' at line 1

Código PHP:
CREATE TABLE 'restaurantes'(
'restaurante_ID'mediumintNOT NULL AUTO_INCREMENT ,
'restaurante_long'varchar30 NOT NULL default '0',
'restaurante_lat'varchar30 NOT NULL default '0',
'restaurante_nombre'varchar50 NOT NULL default”,
'restaurante_coment'text NOT NULL ,
'restaurante_marcador'charNOT NULL default”,
'restaurante_cocina'varchar50 NOT NULL default”,
'restaurante_direcc'varchar50 NOT NULL default”,
'restaurante_url'varchar50 NOT NULL default”,
'restaurante_precio'varchar10 NOT NULL default”,
'restaurante_ip'varchar15 NOT NULL default”,
'restaurante_month'smallintNOT NULL default '0',
'restaurante_day'smallintNOT NULL default '0',
'restaurante_year'smallintNOT NULL default '0',
'restaurante_time'varchar15 NOT NULL default”,
'restaurante_valoracion'charNOT NULL default '0',
PRIMARY KEY 'restaurante_ID' ) ) TYPE MYISAM AUTO_INCREMENT =1
  #5 (permalink)  
Antiguo 23/09/2010, 07:28
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Necesito ayuda -error #1064 - You have an error in your SQL syntax

El problema era la comilla puesta al final de los DEFAULT en los CHAR y VARCHAR. No va una comilla sino dos apóstrofes.
Además, los nombres de objetos como campos, tablas y bases se ponen (opcional) entre acentos inversos, y la cláusula TYPE ya no corresponde. Ahora se usa ENGINE:
Código MySQL:
Ver original
  1. DROP TABLE IF EXISTS `restaurantes`;
  2. CREATE TABLE  `restaurantes` (
  3.   `restaurante_ID` mediumint(3) NOT NULL auto_increment,
  4.   `restaurante_long` varchar(30) NOT NULL default '0',
  5.   `restaurante_lat` varchar(30) NOT NULL default '0',
  6.   `restaurante_nombre` varchar(50) NOT NULL default '',
  7.   `restaurante_coment` text NOT NULL,
  8.   `restaurante_marcador` char(2) NOT NULL default '',
  9.   `restaurante_cocina` varchar(50) NOT NULL default '',
  10.   `restaurante_direcc` varchar(50) NOT NULL default '',
  11.   `restaurante_url` varchar(50) NOT NULL default '',
  12.   `restaurante_precio` varchar(10) NOT NULL default '',
  13.   `restaurante_ip` varchar(15) NOT NULL default '',
  14.   `restaurante_month` smallint(2) NOT NULL default '0',
  15.   `restaurante_day` smallint(2) NOT NULL default '0',
  16.   `restaurante_year` smallint(2) NOT NULL default '0',
  17.   `restaurante_time` varchar(15) NOT NULL default '',
  18.   `restaurante_valoracion` char(2) NOT NULL default '0',
  19.   PRIMARY KEY  (`restaurante_ID`)
  20. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 23/09/2010, 15:49
 
Fecha de Ingreso: marzo-2006
Mensajes: 216
Antigüedad: 18 años
Puntos: 0
Respuesta: Necesito ayuda -error #1064 - You have an error in your SQL syntax

Cita:
Iniciado por gnzsoloyo Ver Mensaje
El problema era la comilla puesta al final de los DEFAULT en los CHAR y VARCHAR. No va una comilla sino dos apóstrofes.
Además, los nombres de objetos como campos, tablas y bases se ponen (opcional) entre acentos inversos, y la cláusula TYPE ya no corresponde. Ahora se usa ENGINE:
Código MySQL:
Ver original
  1. DROP TABLE IF EXISTS `restaurantes`;
  2. CREATE TABLE  `restaurantes` (
  3.   `restaurante_ID` mediumint(3) NOT NULL auto_increment,
  4.   `restaurante_long` varchar(30) NOT NULL default '0',
  5.   `restaurante_lat` varchar(30) NOT NULL default '0',
  6.   `restaurante_nombre` varchar(50) NOT NULL default '',
  7.   `restaurante_coment` text NOT NULL,
  8.   `restaurante_marcador` char(2) NOT NULL default '',
  9.   `restaurante_cocina` varchar(50) NOT NULL default '',
  10.   `restaurante_direcc` varchar(50) NOT NULL default '',
  11.   `restaurante_url` varchar(50) NOT NULL default '',
  12.   `restaurante_precio` varchar(10) NOT NULL default '',
  13.   `restaurante_ip` varchar(15) NOT NULL default '',
  14.   `restaurante_month` smallint(2) NOT NULL default '0',
  15.   `restaurante_day` smallint(2) NOT NULL default '0',
  16.   `restaurante_year` smallint(2) NOT NULL default '0',
  17.   `restaurante_time` varchar(15) NOT NULL default '',
  18.   `restaurante_valoracion` char(2) NOT NULL default '0',
  19.   PRIMARY KEY  (`restaurante_ID`)
  20. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Gracias funciono a la primera.
  #7 (permalink)  
Antiguo 23/09/2010, 16:06
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Necesito ayuda -error #1064 - You have an error in your SQL syntax

El tema de los apóstrofes ('), las comillas (") y los acentos graves (`) es crítico pero simple:

- Los acentos graves y las comillas se usan únicamente para los nombres de objetos de bases de datos tales como tablas, campos, bases, triggers, stored procedures, stored functions, indices, constraints, es decir todo objeto creado por una sentencia DDL. Se usan con especial cuidado cuando se va a utilizar como nombre de un objeto una palabra reservada, como podría ser USER, INDEX, FILE, MAX, etc., para evitar que sean tomados como ordenes de SQL y causen errores de sintaxis.

- Los apóstrofes se usan única y exclusivamente para cadenas de texto. Nada más. Es el único símbolo que MYQL admite para eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sql, syntax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:54.