我正在用OOP mysqli搞亂。我偶然發現了這個問題:SQL查詢不能在php中工作,但在phpmyadmin中工作
運行查詢時出錯[您的SQL語法有錯誤;請檢查與您的MariaDB服務器版本相對應的手冊,以找到在'CREATE TABLE IF NOT EXISTS
engine
'附近使用的正確語法。users
(ID
INT(11)NOT NULL,USERNAME
'在行1]
這是PHP代碼:
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>";
}
嘗試了不同的引號,沒有運氣 我也呼應了$ SQL ,它複製它並在phpmyadmin執行,它的工作完美。但仍然不會做任何PHP內部。 謝謝。
爲什麼所有的級聯?簡化您的代碼。 PHP允許在字符串中換行。使用它們。 –
我認爲多個命令在一個查詢中的問題,因爲錯誤消息出現在第二行。 – Peter
@JohnConde這只是嘗試多種事情的結果:S – Morsus