No. mysql_insert_id() devuelve el id insertado en la última consulta hecha en el request actual. Por lo tanto, si antes no hubo ningún INSERT, no devolverá nada.
Para obtener el id próximo a insertar podemos hacer una consulta a la bd preguntándoselo:
Código php:
Ver originalobtener_siguiente_id($tabla) {
$result = mysql_query("SELECT LAST_INSERT_ID() FROM $tabla"); }
Otra forma es usando la sentencia SHOW TABLE STATUS
Código php:
Ver originalfunction obtener_siguiente_id($tabla) {
$result = mysql_query("SHOW TABLE STATUS LIKE '$tabla'"); return $row['auto_increment'];
}
La última forma es la más segura. Pero de cualquier forma, esto siempre conlleva una consulta extra, así que la manera más sencilla de lograr lo que deseas,
adrewp, es hacer el insert, y usando mysql_insert_id() actualizar el registro ingresado.
EDITO: Para coger el return basta con asignar la función a una variable:
Código php:
Ver original$var = obtener_siguiente_id("tabla");