Cita:
Iniciado por gnzsoloyo 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..