SQL查询无法在php中工作但在phpmyadmin中工作

时间:2017-04-18 19:37:34

标签: php mysql mysqli

我正在搞乱OOP mysqli。我偶然发现了这个问题:

  

运行查询时出错[您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在#CREI TABLE {NOT} EXISTS engine附近使用正确的语法。usersID 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内部做任何事情。 感谢。

1 个答案:

答案 0 :(得分:1)

使用multi_query代替查询,因为您希望多个查询不仅一个。正如您所见,第一次查询后问题就出现了。

http://php.net/manual/en/mysqli.multi-query.php