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

Error #1064 en Consulta SQL de DB

Estas en el tema de Error #1064 en Consulta SQL de DB en el foro de Mysql en Foros del Web. Buenos ,estoy creando una tabla en mi base de datos ,y me arroja este error : #1064 - You have an error in your SQL ...
  #1 (permalink)  
Antiguo 01/10/2014, 13:30
 
Fecha de Ingreso: abril-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Error #1064 en Consulta SQL de DB

Buenos ,estoy creando una tabla en mi base de datos ,y me arroja este 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 ') ENGINE=MyISAM AUTO_INCREMENT=1' at line 11



Este es el codigo que pego en Consulta SQL de mi DB ,pero me sale el error mencionado :

Código MySQL:
Ver original
  1. CREATE TABLE `usuarios_db` (
  2.          `id` smallint(5) unsigned NOT NULL auto_increment,
  3.          `usuario` varchar(225) NOT NULL default '',
  4.          `pass` varchar(225) NOT NULL default '',
  5.          `ip` varchar(225) NOT NULL default '',
  6.          `tiempo` varchar(225) NOT NULL default '',
  7.          `baneado` varchar(225) NOT NULL default '',
  8.          `fecha_uso` datetime default NULL,
  9.           PRIMARY KEY  (`id`),
  10.           KEY `usuario` (`usuario`,`pass`)
  11.           ) ENGINE=MyISAM  AUTO_INCREMENT=1 ;

Aver si me ayudan a solucionar gracias...

Última edición por gnzsoloyo; 01/10/2014 a las 13:47
  #2 (permalink)  
Antiguo 01/10/2014, 13:56
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: Error #1064 en Consulta SQL de DB

Yo no veo ningún error puntual a simple vista...
¿Cómo lo estás ejecutando? ¿phpMyadmin, MySQL Workbench, consola de MySQL?
__________________
¿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 01/10/2014, 17:47
 
Fecha de Ingreso: abril-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: Error #1064 en Consulta SQL de DB

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Yo no veo ningún error puntual a simple vista...
¿Cómo lo estás ejecutando? ¿phpMyadmin, MySQL Workbench, consola de MySQL?
en phpmyadmin ,a travez de una consulta ,pero el error ke me bota es este :

#1071 - Specified key was too long; max key length is 1000 bytes

alguna solucion ?
  #4 (permalink)  
Antiguo 02/10/2014, 06:30
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: Error #1064 en Consulta SQL de DB

Es un problema del tipo de caracteres, muy probablemente, porque la longitud mmáxima de clave no peude, en tablas MyISAM, superar los 1000 bytes. Pero si usas un charset por default que es multibyte, por ejemplo, los 450 caracteres totales máximos de tu clave peuden terminar siendo mucho más de 1000.

En realidad la mejor solución es simple, porque estás poniendo valores demasiado grandes para efectos prácticos...
¿Conoces a alguien que registro un username de 100 caracteres?
Yo no.
En cuanto a la password, nadie en su sano juicio usa una clave de mas de 20 caracteres, simplemente porque se la va a olvidar. Y podría asegurar que alguna vez te ha pasado.. ¿o no?

Bueno, un username no necesita tener 255 caracteres. para la mayoría de los casos con 50 o menos alcanza, y sólo se usan más si el username es un e-Mail.
En cuanto a la clave, lo mejor es usar la maxima longitud de una clave encriptada, que no va a llegar mucho más alla de 128 caracteres.

Definir los tipos de columna adecuados para los datos no es algo que haces al tun-tun. Debes analizar lo que requiere tu sistema; y no poner longitudes por exceso.

Por cierto: recuerda que poner el valor entre parentesis en los numeros no restringe los rangos de valor. Me refiero a que poner SMALLINT(5) UNSIGNED no hará que el valor máximo sea 99999. Seguirá siendo 65535...
__________________
¿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 02/10/2014, 14:32
 
Fecha de Ingreso: abril-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: Error #1064 en Consulta SQL de DB

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Es un problema del tipo de caracteres, muy probablemente, porque la longitud mmáxima de clave no peude, en tablas MyISAM, superar los 1000 bytes. Pero si usas un charset por default que es multibyte, por ejemplo, los 450 caracteres totales máximos de tu clave peuden terminar siendo mucho más de 1000.

En realidad la mejor solución es simple, porque estás poniendo valores demasiado grandes para efectos prácticos...
¿Conoces a alguien que registro un username de 100 caracteres?
Yo no.
En cuanto a la password, nadie en su sano juicio usa una clave de mas de 20 caracteres, simplemente porque se la va a olvidar. Y podría asegurar que alguna vez te ha pasado.. ¿o no?

Bueno, un username no necesita tener 255 caracteres. para la mayoría de los casos con 50 o menos alcanza, y sólo se usan más si el username es un e-Mail.
En cuanto a la clave, lo mejor es usar la maxima longitud de una clave encriptada, que no va a llegar mucho más alla de 128 caracteres.

Definir los tipos de columna adecuados para los datos no es algo que haces al tun-tun. Debes analizar lo que requiere tu sistema; y no poner longitudes por exceso.

Por cierto: recuerda que poner el valor entre parentesis en los numeros no restringe los rangos de valor. Me refiero a que poner SMALLINT(5) UNSIGNED no hará que el valor máximo sea 99999. Seguirá siendo 65535...


Ok funciono ,cambie los valores a 150 ..gracias ..


Una consulta ,estoy insertando datos en una tabla ,pero me sale un 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 '", $link)' at line 1


ERROR: Comillas sin cerrar @ 0
STR: "
SQL: ", $link);

e probado agregando y quitando comillas ,pero no entiendo ,los datos que inserto en la tabla son :

INSERT INTO `user_bd_configuracion` VALUES ('1', 0, '$admin', '$passadmin', 'tuweb', 'webmaster@tuweb', '74jolkill5', '2009-01-22 17:58:06'),('2', 0, '1', '5', '', '', '', '2006-01-22 17:58:06');", $link);

Yo voy a reemplazar los valores $admin por administraador ,$passadmin por mi pass y asi ,pero en el caso de $link no lo se ,se que hace conexion a db.

Bueno antes estoy instalado un base de datos manualmente ,ya que el install.php no me deja instalar,via phpmyadmin estoy haciendo ,ese $link hace conexion a la base de datos .

Archivo Install.php ( en una parte del archivo esta ese $link )

Código PHP:
$basedatos "$nombre_bd";

$link = @mysql_connect("$host""$usuario_bd""$contrasena_bd");

// comprobamos que hemos estabecido conexión en el servidor
if (! $link){
echo 
"<center><br><br>ERROR: Imposible establecer conección con el servidor.<br><br></center>";
exit();
}

// obtenemos una lista de las bases de datos del servidor
$db mysql_list_dbs(); 
espero que me puedas ayudar gracias..

Etiquetas: 1064, sql, tabla
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 07:09.