timon: fehler bei mysql_insert_id() vollständig ausschliessen

Hallo,

ich hab da mal eine frage:

Ich habe mir auf meiner Seite ein kleines forum gemacht, und möchte , nachdem man einen beitrag geposted hat, dem benutzer einen link geben um seinen post zu sehen, so zum beispiel:

  
$eintragen_query = mysql_query("insert [...]")  
if ($eintragen_query) {  
   $post_id = mysql_insert_id ();  
   echo "Erfolgreich geposted.<p><a href='viewpost.php?t=".$post_id."' target='_self' title='Der post'>Hier klicken um nachricht zu sehen</a>";  
} else {  
   echo "Fehler: ".mysql_error();  
}  

hier habe ich jetzt theoretisch das problem. Ich weiss, ich muss die funktion mysql_insert_id () verwenden, aber wie kann ich sicher sein, dass nicht in der zwischenzeit in einer anderen tabelle eine andere id vergeben wurde?

vielleicht kann mir da mal einer sagen, wie lange die zeit zwischen der query und dem abfragen der insert_id dauert? ich weiss, es handelt sich normalerweise nur um hundertstel oder tausendstel sekunden, aber was ist wenn bei hohem traffic es doch mal zufällig passieren kann? kann man das auch mit irgendeiner funktion vollständig ausschliessen?

ich persöhnlich könnte mit dem geringen risiko eines fehlers leben, aber es würde mich trotzdem interessieren, ob es da eine elegantere lösung gibt.

danke schonmal.

Timon

--
Käsebrötchen
  1. $eintragen_query = mysql_query("insert [...]")
    if ($eintragen_query) {
       $post_id = mysql_insert_id ();

    hier habe ich jetzt theoretisch das problem. Ich weiss, ich muss die funktion mysql_insert_id () verwenden, aber wie kann ich sicher sein, dass nicht in der zwischenzeit in einer anderen tabelle eine andere id vergeben wurde?

    Wirf mal einen Blick in die Anleitung, dort steht ausdrücklich drin, dass "der Wert von mysql_insert_id() nur von Anweisungen beeinflusst wid, die innerhalb der aktuellen Clientverbindung gegeben werden, aber nicht durch Anweisungen von anderen Clients."

    Deine Befürchtung war zwar umsichtig, aber unbegründet.