This question already has answers here:
How to execute two mysql queries as one in PHP/MYSQL?
                                
                                    (8个答案)
                                
                        
                                2年前关闭。
            
                    
我在弄乱OOP mysqli。我偶然发现了这个问题:


  运行查询时出错[SQL语法错误;检查与您的MariaDB服务器版本相对应的手册,以找到在'如果不存在的情况下创建表engineusersID 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中做任何事情。
谢谢。

最佳答案

使用multi_query代替查询,因为您不仅要对多个查询进行查询。如您所见,该问题在首次查询后立即出现。

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

关于php - SQL查询无法在php中工作,但可以在phpmyadmin中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43480769/

10-09 22:57
查看更多