Es sollen mehrere Datensätze gelöscht, eingefügt oder geändert werden. Es handeln sich dabei um etwa 30 Datensätze in einem Durchlauf.
Die Querys werden in einer Schleife erzeugt und dann ausgeführt.
Query delete funktioniert einzeln korrekt. Query insert, update funktioniert einzeln auch korrekt.
Wenn die Querys aber in dieser foreach Scheliefe abgearbeitet werden, werden die Datensätze gelöscht und insert, update wird nicht ausgeführt!
MySQL meldet keinen Fehler, PHP auch nicht.
Wenn ich ALLE Querys als String ausgebe und dann in MySQL Worbench kopiere und ausführen lasse funktioniert alles perfekt.
Hat jemand eine Idee? Ich nicht mehr!
Tabelle: MyISAM
Primary Key: dealer_id, category_id
Die Querys werden in einer Schleife erzeugt und dann ausgeführt.
Query delete funktioniert einzeln korrekt. Query insert, update funktioniert einzeln auch korrekt.
Wenn die Querys aber in dieser foreach Scheliefe abgearbeitet werden, werden die Datensätze gelöscht und insert, update wird nicht ausgeführt!
MySQL meldet keinen Fehler, PHP auch nicht.
Wenn ich ALLE Querys als String ausgebe und dann in MySQL Worbench kopiere und ausführen lasse funktioniert alles perfekt.
Hat jemand eine Idee? Ich nicht mehr!
Tabelle: MyISAM
Primary Key: dealer_id, category_id
PHP-Code:
foreach ($CATEGORYS as $CATEGORY_ID) {
if ($CATEGORY_ID > 0) {
/** query insert, update */
$QUERY = <<<QUERY_END
INSERT INTO
dealer_category
SET
category_range = '$CATEGORY_RANGE',
dealer_id = '$DEALER_ID',
category_id = '$CATEGORY_ID',
dealer_name = '$DEALER_NAME'
ON DUPLICATE KEY UPDATE category_range = '$CATEGORY_RANGE'
;
QUERY_END;
} else {
/** query delete */
$QUERY = <<<QUERY_END
DELETE
FROM
dealer_category
WHERE
dealer_id = '$DEALER_ID'
AND
category_id = '$CATEGORY_ID'
;
QUERY_END;
}
/** database */
$CONNECTION = mysql_connect(__DATABASE_HOST,__DATABASE_USERNAME,__DATABASE_PWD);
mysql_select_db (__DATABASE_DATABASE,$CONNECTION);
mysql_query($QUERY,$CONNECTION);
}
Kommentar