私はOOP mysqliを使いこなしています。そして、私はこの問題につきました:SQLクエリがphpではなくphpmyadminで動作しています
[SQL構文に誤りがあります。あなたのMariaDBサーバーのバージョンに対応するマニュアルをチェックして、正しい構文が 'CREATE TABLE IF NOT EXISTS
engine
'の近くで使用されるようにしてください。users
(1行目ID
INT(11)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では文字列の改行が可能です。それらを使用してください。 –
エラーメッセージが2番目の行から出現したので、1つのクエリで複数のコマンドの問題が発生すると思います。 – Peter
@ JohnCondeこれは複数のものを試した結果です:S – Morsus