Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: astinx en 9 Marzo 2012, 20:42 pm



Título: Duda sobre mysql; ¿Se puede conocer el valor de un campo luego de insertarlo?
Publicado por: astinx en 9 Marzo 2012, 20:42 pm
Hola, lo que me sucede es que yo tengo una tabla, donde (este es un mero ejemplo) tengo un id, que es clave principal y es un entero que se auto-incrementa, y tengo el nombre que es un varchar.
Ahora, lo que me sucede es que yo quiero insertar un nuevo nombre, y justo después usar el id, del nuevo nombre insertado, pero pienso que no seria correcto que la consulta para hacerlo fuera; "select id from test where (test.nombre = 'unNombre')". Pensé que tal vez lo correcto seria contar la cantidad de columnas, pero tampoco estoy convencido. ¿Hay alguna forma autentica de lograr recuperar el id luego de insertarlo?

Les dejo un ejemplo:

Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4.  
  5. <title>sin título</title>
  6. <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  7. <meta name="generator" content="Geany 0.18" />
  8. </head>
  9. <?php
  10. //Pruebas
  11. $host_db="localhost";
  12. $usuario_db="root";
  13. $password_db="root";
  14. $nombre_db="kimboo";
  15. $link = mysql_connect($host_db,$usuario_db,$password_db);
  16. $query ="insert into test (nombre) value ('Gerardo')";
  17. $result = mysql_db_query($nombre_db,$query,$link);
  18. if (mysql_num_rows($result)) {
  19. echo "Error";
  20. } else {
  21. //Chan
  22. $row = mysql_fetch_array($result);
  23. echo '<p>Se inserto el usuario con ID igual a '.$row['id'].'</p>';
  24. }
  25. ?>
  26. </body>
  27. </html>

Muchas gracias por detenerse a leer, Saludos!


Título: Re: Duda sobre mysql; ¿Se puede conocer el valor de un campo luego de insertarlo?
Publicado por: raul338 en 9 Marzo 2012, 20:57 pm
Lo que buscas es: function mysql_insert_id (http://php.net/manual/es/function.mysql-insert-id.php)


Título: Re: Duda sobre mysql; ¿Se puede conocer el valor de un campo luego de insertarlo?
Publicado por: astinx en 10 Marzo 2012, 15:53 pm
Muchas gracias, Raúl :D