2017-03-27 9 views
1

私はPHPのmysqliを使ってテーブルとインデックスを作成していますが、私はこのエラーを受け取りました。php mysqli creat indexエラー

私はすでにmysqlクライアントでこれらのsqlを実行しており、うまくいきました。

$creatTableSql = <<<EOF 
CREATE TABLE IF NOT EXISTS duplicate_attachment(
    id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    md5 VARCHAR(32) NOT NULL, 
    filesize INT(11), 
    ids TEXT NOT NULL 
); 

CREATE UNIQUE INDEX duplicate_attachment_id_uindex ON duplicate_attachment (id); 

CREATE UNIQUE INDEX duplicate_attachment_md5_uindex ON duplicate_attachment (md5); 
EOF; 
$mysqli->query($creatTableSql); 
var_dump($mysqli->error); 

文字列(226)「あなたはあなたのSQL構文でエラーが発生している;「 duplicate_attachmentに一意索引のduplicate_attachment_id_uindexをCREATE近く 使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアル をチェック(id); ' 8行目」

答えて

0

これは単一のクエリではなく、複数のクエリのセットです。
1つずつ実行する必要があります。

$mysqli->query("CREATE TABLE IF NOT EXISTS duplicate_attachment(
    id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    md5 VARCHAR(32) NOT NULL, 
    filesize INT(11), 
    ids TEXT NOT NULL 
)"; 
$mysqli->query("CREATE UNIQUE INDEX duplicate_attachment_id_uindex ON duplicate_attachment (id)"; 
$mysqli->query("CREATE UNIQUE INDEX duplicate_attachment_md5_uindex ON duplicate_attachment (md5)"; 
+0

あなたは私の人生を保存します。ありがとうございました! – macc