Mario, miembro de este gran equipo, nos ha hecho el favor de crear este tutorial ya que domina a la perfección el tema.
Solución:
INSERTAR solo regresa true o false. para devolver algo útil, necesitará una consulta SELECT o similar. no hay ningún resultado para buscar con INSERT.
De la documentación de php:
Valores devueltos para SELECT
, SHOW
, DESCRIBE
, EXPLAIN
y otras declaraciones que devuelven un conjunto de resultados, mysql_query()
devuelve un recurso en caso de éxito, o FALSE
en error
Para otro tipo de sentencias SQL, INSERT
, UPDATE
, DELETE
, DROP
etc, mysql_query()
devoluciones TRUE
en el éxito o FALSE
en error
El recurso de resultado devuelto debe pasarse a mysql_fetch_array()
y otras funciones para manejar tablas de resultados, para acceder a los datos devueltos.
Usar mysql_num_rows()
para averiguar cuántas filas se devolvieron para un SELECT statement
o mysql_affected_rows()
para averiguar cuántas filas se vieron afectadas por un DELETE
, INSERT
, REPLACE
o UPDATE statement.
mysql_query()
también fallará y volverá FALSE
si el usuario no tiene permiso para acceder a las tablas a las que hace referencia la consulta.
Aunque este es un hilo muy antiguo, sigue siendo relevante. Y a los que tropiecen con esto (como me pasó a mí), ¡no se rindan! Hay opciones. De hecho, vea esta respuesta en SO
Además, para sqli y pdo, vea esto
Esencialmente, una declaración de inserción seguida de una de las funciones enumeradas en esas respuestas le dará la ID del último registro. La función se usa así:
$LastID = mysql_insert_id();
después de la sentencia INSERT.
Recuerda compartir este artículo si te valió la pena.