Ich bin mit OOP mysqli rum. Und ich stolperte über dieses Problem:SQL-Abfrage funktioniert nicht in PHP, funktioniert aber in phpmyadmin
Es gab einen Fehler beim Ausführen der Abfrage [Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, damit die richtige Syntax in der Nähe von 'CREATE TABLE WENN NOT EXISTS
engine
verwendet wird.users
(ID
INT (11) NOT NULL,USERNAME
'at line 1]
Dies ist der PHP-Code.
function InstallDB($db){
$sql =
"CREATE DATABASE IF NOT EXISTS `$this->dbname`; ".
"CREATE TABLE IF NOT EXISTS `$this->dbname`.`$this->users` (".
"`ID` INT(11) NOT NULL, ".
"`USERNAME` varchar(60) NOT NULL,".
"`PASSWORD` varchar(60) NOT NULL,".
"`EMAIL` varchar(100) NOT NULL,".
"`IMAGE` varchar(250) NULL,".
"`LEVEL` INT(11) NOT NULL DEFAULT '1'".
") ENGINE=InnoDB DEFAULT CHARSET=utf8;".
"CREATE TABLE IF NOT EXISTS `$this->dbname`.`$this->settings` (".
"`DOMAIN` varchar(60) NOT NULL,".
"`SLOGAN` varchar(255) NOT NULL,".
"`EMAIL` varchar(100) NOT NULL".
") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
if(!$result = $db->query($sql)){
die('SQL['.$sql.']<br>There was an error running the query [' . $db->error . ']<br>');
}
echo "Installed!<br>";
}
versucht, verschiedene Anführungszeichen, kein Glück wiederholte ich auch die $ sql , kopiert und ausgeführt in phpmyadmin, es funktionierte perfekt.Aber noch nichts in PHP tut. Danke.
Warum die ganze Verkettung? Vereinfachen Sie Ihren Code. PHP erlaubt Zeilenumbrüche in Strings. benutze sie. –
Ich denke, das Problem mit dem Mehrfachbefehl in einer Abfrage, weil die Fehlermeldung aus der zweiten Zeile erschien. – Peter
@JohnConde Dies ist nur das Ergebnis mehrerer Dinge zu versuchen: S – Morsus