Situation:
Beim Aufruf der Startseite wird die Fehlermeldung ausgegeben:
An unexpected error occurred:
MySQL Error: Unknown column '1' in 'where clause'
in Query: SELECT `key`,`value` FROM `ilch_config` WHERE `autoload` = "1"
Meine Vermutung
Das SQL wird syntaxtechnisch nicht korrekt zusammengebaut. Wenn ich das SQL aus der Fehlermelung im MySQL absetzte, kann es nicht korrekt ausgeführt werden. Wenn ich das SQL wie folgt korrigiere, funktioniert es:
SELECT `key`,`value` FROM `ilch_config` WHERE `autoload` = 1
oder auch
SELECT `key`,`value` FROM `ilch_config` WHERE `autoload` = '1'
Es liegt also an den Anführungszeichen. Aber woher kommen die plötzlich und noch viel wichtiger, wo kann ich die beheben?
Das Ergebnis der Abfrage ist dann übrigens wie folgt - denke, das spielt keine Rolle sondern nur, dass die Syntax vom SQL wieder korrekt zusammengebastelt wird.
date_cms_installed 2019-03-04 12:38:11
locale de_DE
Eingrenzung des Fehlers
Diese Funktion in Database.php löst den Fehler aus aber kommt mir unverdächtig vor:
/**
* Loads the config from the database.
*/
public function loadConfigFromDatabase()
{
$configs = $this->db->select(['key', 'value'])
->from('config')
->where(['autoload' => 1])
->execute()
->fetchRows();
foreach ($configs as $config) {
$this->configData[$config['key']]['value'] = $config['value'];
$this->configData[$config['key']]['autoload'] = 1;
}
}
Ich verstehe es so, habe aber keinen Lösungsansatz dafür:
->where(['autoload' => 1])
erzeugt also einen Syntaxfehler im SQL-String durch die "" in dem WHERE `autoload` = "1"
Zuletzt modifiziert von SnakeHH am 13.04.2019 - 20:52:40