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

No puedo registrar a usuarios en base de datos

Estas en el tema de No puedo registrar a usuarios en base de datos en el foro de Bases de Datos General en Foros del Web. Hola, espero me puedan ayudar tengo un problema. Yo tengo una base de datos funcionando hace ya un tiempo y todo me habia ido perfecto, ...
  #1 (permalink)  
Antiguo 29/09/2010, 23:26
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
No puedo registrar a usuarios en base de datos

Hola, espero me puedan ayudar tengo un problema.
Yo tengo una base de datos funcionando hace ya un tiempo y todo me habia ido perfecto, en estos ultimos dias habia querido hacer una pequeña actualizacion agregando nuevos campos, todavia no he actualizado la pagina pero la tabla ya esta lista, ayer me llego un mensaje de un visitante diciendo q no se podia registrar y en efecto, verifico y me da el siguiente error:

Could not insert data because 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 '' at line 1

Lo e revisado hasta mas no poder y no se porq aparecio esto de la nada, pense q sin querer habia tocado algun codigo de la base de datos, entoces borre todos los campos nuevos y la deje como estaba y nada. Entoces dije, voy a crear otra tabla aparte y luego muevo los registro de una tabla a otra, eso fue lo q hice, con el tuto de http://www.comocreartuweb.com/phpBB2/ftopic11766.html instale de nuevo una nueva table con un nombre diferente, con los archivos originales del tuto para descartar q fuera algun error en mis codigos pero el lo que intente registrarme me aparecio el mismo error. Por favor alguien me ayude, no tengos muchos conocimiento de SQL, pero hago lo q puedo y hasta ahora todo me habia salido bien. aqui les dejo los codigos q estoy usando:

"este es el original"
register.php
Código PHP:
Ver original
  1. <?php
  2. include("config.php");
  3.  
  4. // connect to the mysql server
  5. $link = mysql_connect($server, $db_user, $db_pass)
  6. or die ("Could not connect to mysql because ".mysql_error());
  7.  
  8. // select the database
  9. mysql_select_db($database)
  10. or die ("Could not select database because ".mysql_error());
  11.  
  12. // check if the username is taken
  13. $check = "select id from $table where username = '".$_POST['username']."';";
  14. $qry = mysql_query($check)
  15. or die ("Could not match data because ".mysql_error());
  16. $num_rows = mysql_num_rows($qry);
  17. if ($num_rows != 0) {
  18. echo "Disculpa, el nombre de usuario $username ya existe.<br>";
  19. echo "<a href=register1.php>Try again</a>";
  20. } else {
  21.  
  22. // insert the data
  23. $insert = mysql_query("insert into $table (id, username, password, name1, name2, email, website ) values ('NULL', '".$_POST['username']."', '".$_POST['password']."', '".$_POST['name1']."', '".$_POST['name2']."', '".$_POST['email']."', '".$_POST['website']."'")
  24. or die ("Could not match data because ".mysql_error());
  25.  
  26. // print a success message
  27. echo "Tu cuenta ha sido creada exitosamente, gracias por registrarte ".$username."";
  28. header('refresh:3; url=http://evanepica.freevar.com/login1.php');
  29. }

Tabla ac_users la nueva tabla q instale desde el tutorial le puse ac_ser pero me aparece el mismo error.

Código SQL:
Ver original
  1. CREATE TABLE `ac_users` (
  2.   `id` SMALLINT(5) NOT NULL AUTO_INCREMENT,
  3.   `username` VARCHAR(30) NOT NULL DEFAULT '',
  4.   `password` VARCHAR(32) NOT NULL DEFAULT '',
  5.   `name1` VARCHAR(32) NOT NULL DEFAULT '',
  6.   `name2` VARCHAR(32) NOT NULL DEFAULT '',
  7.   `email` VARCHAR(62) NOT NULL DEFAULT '',
  8.   `website` VARCHAR(250) NOT NULL DEFAULT '',
  9.   PRIMARY KEY (`id`),
  10.   UNIQUE KEY `username` (`username`)
  11. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=138 ;

Espero me puedan ayudar, es urgente ya q estoy perdiendo varios posible usuarios, y necesito lanzar la nueva actualizacion con este problema resuelto, ya q la actualizacion se basa en la zona de usuario.

Otra cosa q cabe resaltar es que los usuarios ya registrados pueden iniciar sesion sin problemas, modificar sus datos y demas, el problema viene al intentar registrar a un nuevo usuario.

Gracias
  #2 (permalink)  
Antiguo 30/09/2010, 00:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: No puedo registrar a usuarios en base de datos

comprueba el último id que tengas, pues smallint sólo te permite 32767. Si es ese número o alguno próximo, tendrás que cambiar el tipo a int(11), por ej.
  #3 (permalink)  
Antiguo 30/09/2010, 03:13
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: No puedo registrar a usuarios en base de datos

Tip adicional: Los ID numéricos deben ser siempre UNSIGNED. Eso hará que tengas el doble del rango que con SIGNED y así no desperdiciarás números.
El autoincrement no produce negativos, y además jamás se usan números negativos para un registro en un archivo.
¿Alguna vez has visto un documento personal con numero así?
__________________
¿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: bases-de-datos
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 23:14.