Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询不在php中工作,但在phpmyadmin中工作_Php_Mysql_Mysqli - Fatal编程技术网

SQL查询不在php中工作,但在phpmyadmin中工作

SQL查询不在php中工作,但在phpmyadmin中工作,php,mysql,mysqli,Php,Mysql,Mysqli,我在和OOP mysqli玩。我偶然发现了这个问题: 运行查询时出错[您的SQL语法有错误;请检查与您的MariaDB服务器版本对应的手册,以了解在第1行的“CREATE TABLE IF NOT EXISTS engine.users ID INT11 NOT NULL,USERNAME”附近使用的正确语法] 这是PHP代码: function InstallDB($db){ $sql = "CREATE DATABASE IF NOT EXISTS `$this-&

我在和OOP mysqli玩。我偶然发现了这个问题:

运行查询时出错[您的SQL语法有错误;请检查与您的MariaDB服务器版本对应的手册,以了解在第1行的“CREATE TABLE IF NOT EXISTS engine.users ID INT11 NOT NULL,USERNAME”附近使用的正确语法]

这是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允许字符串中的换行符。使用它们。我认为在一个查询中使用multiple命令会有问题,因为错误消息出现在第二行。@johncode这只是尝试多个操作的结果:SYep,有效。我在想这个,我甚至在谷歌上搜索过,但我能找到的只是我不想使用的交易。谢谢。你能接受我的回答吗?当然,有2分钟的冷却时间,所以我不能马上做。再次感谢你。