我正在用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