TypischeFrage: MySQL Update

Beitrag lesen

Servus!

ich hab grad einen komischen Fehler:

Ich habe mehrere Teilquerys, die ich mit multi_query von mysqli zusammen ausführe. Läuft eine dieser Teilquerys schief wird Valid auf false gesetzt und der entsprechende commit am ende durch ein rollback() ersetzt. So Weit so gut.

Hier sind zwei Beispielteilquerys:

UPDATE items SET wos = '000311854900006' WHERE itemID = '21'
UPDATE itemdates SET PublicationMonth = 'NOV' WHERE itemID = '21'

Hierbei funktioniert die obere nicht, die untere schon. Das heißt, wenn ich nach dem Ablauf des Scripts in der Datenbank nachschaue, ist NOV richtig eingetragen für die itemID 21 bei PublicationMonth, allerdings ist bei wos nicht die oben zu sehende Nummer eingetragen, sondern immer "2147483647". Egal welche Datensets ich durchlaufen lasse, dort ist immer "2147483647" eingetragen, obwohl in diesem Fall dort '000311854900006' stehen müsste.

Wie gesagt werden mit multi Query erst alle Teilquerys abgearbeitet und danach geguckt, ob $Valid noch true ist, wenn ja commit, wenn nein rollback. Woran kann sowas liegen?

Ich hab durch die kompletten einztragenden Daten durchgeguckt und nirgendswo auch nicht mit STRG + F die Folge "2147483647" gefunden...

Auszüge aus dem Code:

if($Data['Key'] == "Published.BiblioDate" and $Data['Context'] == "source") {  
				     // Publication Month is Splitted[0] and Publication Day Splitted[1]  
				     $Splitted = explode(" ",$Data['Value']);  
					$Query[] = "UPDATE itemdates SET PublicationMonth = '$Splitted[0]' WHERE itemID = '$itemID'";  
					$Query[] = "UPDATE itemdates SET PublicationDay = '$Splitted[1]' WHERE itemID = '$itemID'";  
				}
if($Data['Key'] == "UT") {  
			          // Insert the WOS ID  
			          $Query[] = "UPDATE items SET wos = '" . $Data['Value'] . "' WHERE itemID = '$itemID'";  
				}
$Result = $this->Connect->multi_query($Query);  
				if($Result !== false) {  
			     	// Query was ok - got result  
             			while ($this->Connect->more_results() && $this->Connect->next_result());  
				}  
         			else {  
         		     	// If the query failed  
         		     	$this->Valid = false;  
					$this->SQLErrors[] = $this->Connect->error;  
					return false;  
				}

Vielen Dank für Ideen woran sowas liegt!