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

Error #1064 in Syntax - No me permite la creación de la tabla

Estas en el tema de Error #1064 in Syntax - No me permite la creación de la tabla en el foro de Mysql en Foros del Web. Buenas, resulta ser que tengo un problemilla con la creación de un tabla que estoy haciendo, y ni Buzu ni yo hemos podido averiguar como ...
  #1 (permalink)  
Antiguo 19/02/2010, 04:15
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 8 meses
Puntos: 23
Error #1064 in Syntax - No me permite la creación de la tabla

Buenas, resulta ser que tengo un problemilla con la creación de un tabla que estoy haciendo, y ni Buzu ni yo hemos podido averiguar como solucionarlo.

Resulta ser que tengo una variable donde tengo una query, y la ejecuto con mysql_query. La variable es esta:

Código PHP:
$pasouno = ("CREATE TABLE `configuracionbd` (
`usuariobd` VARCHAR (200) NOT NULL '' ,
`contrasenabd` VARCHAR (200) NOT NULL '' ,
`host` VARCHAR (200) NOT NULL '',
`bd` VARCHAR (200) NOT NULL '',
) ENGINE = MYISAM ; "
) ; 
¿No tengo ni idea de porqué no vale? ¿Alguien sabe del tema?

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #2 (permalink)  
Antiguo 19/02/2010, 04:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Tienes una coma de más al final del último campo.
Código MySQL:
Ver original
  1. CREATE TABLE `configuracionbd` (
  2. `usuariobd` VARCHAR (200) NOT NULL '' ,
  3. `contrasenabd` VARCHAR (200) NOT NULL '' ,
  4. `host` VARCHAR (200) NOT NULL '',
  5. `bd` VARCHAR (200) NOT NULL ''
  6. ) ENGINE = MYISAM ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/02/2010, 04:27
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

El ; no es amigo

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #4 (permalink)  
Antiguo 19/02/2010, 04:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Cita:
CREATE TABLE `configuracionbd` (
`usuariobd` VARCHAR (200) NOT NULL '' ,
`contrasenabd` VARCHAR (200) NOT NULL '' ,
`host` VARCHAR (200) NOT NULL '',
`bd` VARCHAR (200) NOT NULL '', <--- Esta coma...
) ENGINE = MYISAM ;
A esa me refería... no al punto y coma.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 19/02/2010, 05:01
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
A esa me refería...
Quitada y sigue el problema.

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #6 (permalink)  
Antiguo 19/02/2010, 05:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 16
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Cita:
Iniciado por Distriker Ver Mensaje
Quitada y sigue el problema.

Saludos
no se si me equivoco y seguro que las comillas despues del NOT NULL sirven para algo, pero si las quitas si que funciona.

Esto funciona:
CREATE TABLE `configuracionbd` (
`usuariobd` VARCHAR (200) NOT NULL ,
`contrasenabd` VARCHAR (200) NOT NULL ,
`host` VARCHAR (200) NOT NULL ,
`bd` VARCHAR (200) NOT NULL) ENGINE = MYISAM;

Saludos
  #7 (permalink)  
Antiguo 19/02/2010, 05:11
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Muchas gracias, pero ya lo tengo solucionado gracias a Buzu.

Saludos

P.D. Ahora viene Buzu
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #8 (permalink)  
Antiguo 19/02/2010, 05:11
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años
Puntos: 122
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

YA se solucionó el problema...
__________________
twitter: @imbuzu
  #9 (permalink)  
Antiguo 19/02/2010, 05:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Porque en ese caso está faltando el DEFAULT no lo miré bien porque lo de la coma era muy evidente):

Código MySQL:
Ver original
  1. CREATE TABLE `configuracionbd` (
  2. `usuariobd` VARCHAR (200) NOT NULL DEFAULT '' ,
  3. `contrasenabd` VARCHAR (200) NOT NULL DEFAULT '' ,
  4. `host` VARCHAR (200) NOT NULL DEFAULT '',
  5. `bd` VARCHAR (200) NOT NULL DEFAULT ''
  6. ) ENGINE = MYISAM ;

P.D.: ¿Cuál es la PK de esta tabla?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 21/02/2010, 01:48
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años
Puntos: 122
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

El problema ya se solucionó, y no ere por ninguna de las razones expuestas por los foreros. Resulta que el servidor de mysql tiene un problema con las comillas simples (') y parece solo aceptar ese como apostrofe volteado (`). Ambos parecen idénticos, pero no lo son y por razones que desconozco el servidor no aceptaba la comilla simple. Eso pasaba con mi localhost y al parecer también con el de Distriker ya que una vez que cambié los signos todo funcionó a la perfección. Mencionar que el problema había sido resuelto desde mucho antes de postear la pregunta, pero yo accidentalmente había cambiado una variable que servía para hacer el chequeo y por eso seguía dando error. Ahora, si alguien sabe explicar el por que de el problema se lo agradecería mucho.

Yo pensé que era el encoding del documento que me pasó distriker, pero lo cambié a UTF-8 y siguió con el problema.

Saludos.
__________________
twitter: @imbuzu
  #11 (permalink)  
Antiguo 21/02/2010, 03:23
Avatar de Distriker  
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Si no fuese por Buzu no hubiese podido solucionar esto, así que karma, y también para los demás que me han ayudado.

Saludos
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.
  #12 (permalink)  
Antiguo 21/02/2010, 07:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

El apostrofe (') es para encerrar cadenas de texto (strings), no se usa para otra cosa.
En cambio, el acento grave (`) -poco usual en nuestro idioma- se usa en este y otros DBMS para los nombres de bases, tablas, columnas, triggers, y todo objeto de una base de datos, siendo opcional en todos los casos menos cuando ese nombre lleva espacios, caracteres especiales o es una palabra reservada.

Respecto a la sintaxis inicial, esta hubiese sido correcta:
Código MySQL:
Ver original
  1. CREATE TABLE  `configuracionbd` (
  2.   `usuariobd` varchar(200) NOT NULL default '',
  3.   `contrasenabd` varchar(200) NOT NULL default '',
  4.   `host` varchar(200) NOT NULL default '',
  5.   `bd` varchar(200) NOT NULL default ''
  6. ) ENGINE=MyISAM;
y como se puede ver, lleva perfectamente sus apóstrofos para indicar que el valor por defecto de los campos es vacío (y no NULL).

Obviamente todo este detalle ya es irrelevante, solamente lo pongo como para completar la idea y aclarar el uso del acento grave, el apóstrofe y el DEFAULT que faltaba.
__________________
¿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; 21/02/2010 a las 08:38
  #13 (permalink)  
Antiguo 21/02/2010, 10:56
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años
Puntos: 122
Respuesta: Error #1064 in Syntax - No me permite la creación de la tabla

Es bueno saber lo del apostrofe. Nunca antes me había topado con un caso así...
__________________
twitter: @imbuzu

Etiquetas: creación, permite, syntax, tablas
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.