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
ODERmysql_insert_id()
zurück241
,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 ist26
. - 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 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin Wetten ein leckeres Kölsch:
dass der Grund ist eigentlich ein
echo
später im code, dass Echos einige Boolesche variable, derentrue
übersetzen zu1
.Wenn ich falsch bin, werde ich die downvotes wie ein Mann.
(Verzeihen Sie die dumme Antwort, es ist sehr spät schon, und ich arbeite noch 🙂
Update: Ahh, der Freude, ich hatte Recht!