Joomla 4.4.2
eigene Komponente
läuft auf einem öffentlichen Server mit php 8.1.27, in einem geschützten Testbereich
mysql 8.0.32
Hallo,
ich stehe irgendwie auf dem Schlauch. Beim Versuch den Inhalt einer XML-Datei in die Datenbank ein zu pflegen, bekomme ich folgende Fehlermeldung:
Error inserting data into `#__dealer_vehicles`: Column count doesn't match value count at row 1
Der Fehler tritt bereits bei der ersten Tabelle auf. Wenn ich in der XML-Datei diese Tabelle herausnehme, habe ich den gleichen Fehler auch bei der nächsten Tabelle.
Der (meiner Meinung nach) relevante Code sieht so aus:
$query = $db->getQuery(true);
$query->insert($tableName)
->columns($fields)
->values($values);
try {
$db->setQuery($query);
$db->execute();
} catch (Exception $e) {
JFactory::getApplication()->enqueueMessage('Error inserting data into ' . $tableName . ': ' . $e->getMessage(), 'error');
return;
}
Alles anzeigen
Wobei die Query für Fields (columns) und Values so aussieht:
$query->values:
object(Joomla\Database\Query\QueryElement)#756 (3) { ["name":protected]=> string(2) "()" ["elements":protected]=> array(6) { [0]=> int(170218) [1]=> int(1400) [2]=> int(1) [3]=> NULL [4]=> float(1600) [5]=> float(1904) } ["glue":protected]=> string(3) "),("
}
$query->columns:
object(Joomla\Database\Query\QueryElement)#757 (3) { ["name":protected]=> string(2) "()" ["elements":protected]=> array(6) { [0]=> string(23) "`dealer_vehicle_number`" [1]=> string(16) "`vehicle_number`" [2]=> string(23) "`out_is_ready_for_sale`" [3]=> string(25) "`out_sales_contract_date`" [4]=> string(30) "`out_recommended_retail_price`" [5]=> string(16) "`out_sale_price`" } ["glue":protected]=> string(1) ","
}
Mir fällt dabei auf, dass 'glue' bei den values "),(", bei den columns aber "," ist.
Die Datenbanktabelle hat ebenfalls 6 Spalten.
Ich habe auch schon versucht, die Values mit '$db->quoteName((string)' einzusetzen, das Ergebnis war aber das Gleiche.
Hat jemand eine Idee, was ich da falsch mache?
Danke für jede Information.