Warum ist $wpdb->insert_id und mysql_insert_id() gibt die mit einem extra - '1' am Ende?

Ich brauche zum abrufen der ID des AUTO_INCREMENT-Wert der letzten Abfrage.

Meine Abfrage sieht wie folgt aus:

  $result = $wpdb->query( $wpdb->prepare( "
    INSERT INTO $table_name
    ( name, season, copyright, description, path )
    VALUES ( %s, %s, %s, %s, %s )", 
    $galleryData['name'], $galleryData['season'], $galleryData['copyright'], $galleryData['description'], $galleryData['path'] ) );

  //Let's output the last autogenerated ID.
  echo $wpdb->insert_id;

  //This returns the same result
  echo mysql_insert_id();

Blick auf meine DB-Tabelle, ich sehe die Zeilen zählen von 1 bis 24 (24 Zeilen).
Aber mit $wpdb->insert_id oder mysql_insert_id() zurück 241.

Macht neue Einsätze zurück 251, 261, 271, und so weiter. Warum ich die et extra '1' am Ende?

UPDATE

Dank Pekka (ich würde besser die stad läuft eine Registerkarte auf die Anzahl der Biere, die ich ihm verdanke), habe ich es herausgefunden.

Weiter unten im code habe ich diese:

  if(!$result)
    _e("[DB error] Ups. Something went wrong when trying to insert the event.");
  else
    echo true;

Es ist die Letzte Anweisung (echo true), die ausgegeben wird!

  • Du sagst, dass der obige code Echos 241241, 251251 usw.?
  • Ich Wette ein Bier gibt es irgendwo etwas gibt eine boolean-variable (was übersetzt 1 beim echo).
  • Nein, ENTWEDER läuft $wpdb->insert_id ODER mysql_insert_id() zurück 241, 251, 261 und so weiter. Die ersten Ziffern sind richtig, aber dann ist das 1 Hinzugefügt wird. Suche in MySQL, die höchste ID ist 26.
  • Also, was bedeutet der code oben führen?
  • können Sie versuchen echo "'".mysql_insert_id()."'";? Wenn diese Ausgänge '241' mit dem 1 gewickelt innerhalb der Anführungszeichen, dann glaube ich es, aber nicht vorher 😉
InformationsquelleAutor Steven | 2010-10-18
Schreibe einen Kommentar