Das Einfügen und Aktualisieren von Zeilen mit wpdb bewirkt, dass Integer-Felder manchmal um 1 Punkt verschoben werden

OK, hier ist die Situation: Ich habe eine Tabelle mit den Feldern “ID” (int, automatisch inkrementiert), “query” (Text) und “counter” (int). Ich versuche, es so zu machen, wenn ein ausgewählter Wert in der Spalte “Abfrage” vorhanden ist, sollte der Zähler dieser Zeile um eins erhöht werden. Wenn dies nicht der Fall ist, sollte eine neue Zeile mit dem Wert 1 des Zählers erstellt werden. Ich verwende diesen Code:

$all_search_queries = $wpdb->get_results('SELECT * FROM `table`', ARRAY_A); $found_query = false; foreach($all_search_queries as $val){ if($_GET['s'] == $val['query']){ $wpdb->update('table', array('query'=>$_GET['s'], 'counter'=>$val['counter']+1), array('ID' => $val['ID']), array('%s', '%d'), array('%d')); $found_query = true; break; } } if(!$found_query){ $wpdb->insert('table', array('query'=>$_GET['s'], 'counter'=>1), array('%s', '%d')); } 

Nun, was es tut ist, dass es den $val['counter'] und um 2 erhöht. Wenn ich $val['counter']+2 dann erhöht es den Wert um 4. Wenn ich die +1 lösche, dann die Wert bleibt unverändert.

Auch in der letzten Zeile, wo es eine neue Zeile einfügt – 'counter'=>1 macht den Zähler gleich 2. Und 'counter'=>15 macht es gleich 16. Was gibt? Das ergibt für mich keinen Sinn. Eine Erklärung würde sehr geschätzt werden. Vielen Dank für Ihre Zeit.

Solutions Collecting From Web of "Das Einfügen und Aktualisieren von Zeilen mit wpdb bewirkt, dass Integer-Felder manchmal um 1 Punkt verschoben werden"