Datenbank Insert funktioniert nicht mehr nach Updatde auf Joomla 4 Topic is solved

Fragen zu Joomla 4.x

Moderator: General Support Moderators

Forum rules
Post Reply
gerdon
Joomla! Apprentice
Joomla! Apprentice
Posts: 8
Joined: Wed Jan 18, 2017 7:56 am

Datenbank Insert funktioniert nicht mehr nach Updatde auf Joomla 4

Post by gerdon » Sun Aug 06, 2023 7:42 am

Moin,
ich habe ein Script, in dem ich (mittels Soucerer) ein Insert in eine Datenbanktabelle durchführe. Unter Version 3 funktioniert das, jetzt mit Joomla 4.3 nicht mehr.
Ich habe alle im Netz aufgefundenen Möglichkeiten ausprobiert (die Dokumentation dazu für Joomla 4 ist nicht aktuell).
Folgende Versuche habe ich ausprobiert:

Code: Select all

$dbo = JFactory::getDbo();
$query = $dbo->getQuery(true);
Das ist noch Joomla 3 und soll ohnehin nicht mehr in Joomla 4 funktionieren

Code: Select all

use Joomla\CMS\Factory;
$dbo = Factory::getDbo();
$query = $dbo->getQuery(true);
Das ist eigentlich auch veraltet, soll aber noch funktionieren. In einem anderen Script mit einem Update geht das auch.

Code: Select all

use Joomla\Database\DatabaseInterface;
use Joomla\CMS\Factory;
$dbo = Factory::getContainer()->get(DatabaseInterface::class);
$query = $dbo->getQuery(true);
Das soll State of Art sein, funktioniert aber auch nicht. Bei allen Konstellationen bekomme ich einen 404er und Fehlercode 1364 angezeigt.
Das SQL-Statement lasse ich mit query -> dump anzeigen und ist richtig.
Hier der Code für das INSERT:

Code: Select all

$stat=$_POST['Status'];
		$affSys=$_POST['AffectedSystem'];
		$msg=$_POST['Message'];

		$columns = array( // set the columns of the database that will be inserted
						'Status',
						'AffectedSystem',
						'Message',
						'Reporter',
						'RepTBO',
						'DateReported',
						'ExpDate');
		$values = array( // set the new values according to the columns of the database to be inserted
						$db->quote($stat),
						$db->quote($affSys),
						$db->quote($msg),
						$db->quote($user->username),
						$db->quote($user->behoerde),
						$db->quote($DateReported),
						$db->quote($ExpDate));
		$query = $dbo->getQuery(true) // initiate new query
			->insert($dbo->quoteName($StatusTbl))
			->columns($dbo->quoteName($columns))
			->values(implode(',', $values));

			$dbo->setQuery($query);
			$dbo->execute();
Jetzt sind mir die Ideen ausgegangen. Hat jemand einen Tipp?

gerdon
Joomla! Apprentice
Joomla! Apprentice
Posts: 8
Joined: Wed Jan 18, 2017 7:56 am

Re: Datenbank Insert funktioniert nicht mehr nach Updatde auf Joomla 4

Post by gerdon » Tue Aug 15, 2023 9:19 am

Problem gelöst: Beim Insert werden nicht alle Spalten mit Werten gefüllt. In der Tabellenstruktur waren aber Null-Werte ausgeschlossen. NULL zulassen und alle Probleme sind gelöst.
Es fehlt für Joomla 4 einfach eine brauchbare Dokumentation, insbesondere füpr das Uporgrade-Procedere.


Post Reply

Return to “Joomla! 4.x”