Nabend,
ich habe ernsthafte Probleme mit einem Skript. Das Skript aktualisiert die Warenbestände in unserem Onlineshop und sieht wie folgt aus.
Ich versuche mit multi_query mehrere UPDATES auf einmal in die Datenbank zu schreiben. Das klappt aber nur beim ersten mal, danach kommen nur "Out of sync" errors. Wenn ich nach jedem Eintrag die Verbindung schließe und neu aufbaue funktioniert es zwar, aber ich bin rucki zucki am limit meiner MySQL Connections und es funktioniert erstmal gar nichts mehr (inkl. unseres Shops).
Zur Info:
Das Skript schreibt rund 68000 DS. Wenn ich einzelne $mysqli->query aufrufe funktioniert alles problemlos, es reicht auch, wenn ich die Datenbank erst nach der Schleife schließe, aber der Prozess dauert mehrere Stunden.
Kann mir da jemand helfen?
Vielen Dank und schönen Abend,
Baskosehund
ich habe ernsthafte Probleme mit einem Skript. Das Skript aktualisiert die Warenbestände in unserem Onlineshop und sieht wie folgt aus.
PHP-Code:
$mysqli = new mysqli("XXX","XXX","XXX","XXX");
// Die verbindung testen
if(mysqli_connect_errno()) {
echo "Ein fehler ist aufgetreten: ", mysqli_connect_error(), "\n";
exit();
}
$Zeilen = 1;
$Dateizeiger = fopen("as400/bestand.csv", "r");
while(($Daten = fgetcsv($Dateizeiger, 1000, ";")) !== FALSE)
{
$count++;
$seqcount++;
$average_quantity = $Daten[3] / 28 * 5;
$aendern.="UPDATE `xt_products` Set
`_quantity_2` = '$Daten[2]',
`_average_quantity_2` = '$average_quantity'
WHERE
`products_model` = '$Daten[1]' AND
`dispocode` != 'DISJ';";
if($seqcount>100) {
if($mysqli->multi_query($aendern)) {
echo "Schreiben der Datensätze erfolgreich.";
}
else {
echo "Fehler beim Schreiben der Datensätze: ".$mysqli->error."<br>";
}
$seqcount = 0;
$aendern='';
}
}
$mysqli->close();
echo $count." Lagermengen eingelesen und geprüft.";
fclose($Dateizeiger);
Zur Info:
Das Skript schreibt rund 68000 DS. Wenn ich einzelne $mysqli->query aufrufe funktioniert alles problemlos, es reicht auch, wenn ich die Datenbank erst nach der Schleife schließe, aber der Prozess dauert mehrere Stunden.
Kann mir da jemand helfen?
Vielen Dank und schönen Abend,
Baskosehund
Kommentar