MYSQL)在phpmyadmin中创建唯一索引,但不在php脚本中

MYSQL)在phpmyadmin中创建唯一索引,但不在php脚本中,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我有一个非常简单的SQL脚本 $addQuery = "CREATE TABLE IF NOT EXISTS WORDLIST( english VARCHAR(20), korean VARCHAR(20), swedish VARCHAR(20), synonyms TEXT );CREATE UNIQUE INDEX englishIndex ON WORDLIST(english);"; 此查询

我有一个非常简单的SQL脚本

$addQuery = "CREATE TABLE IF NOT EXISTS WORDLIST(
        english VARCHAR(20),
        korean VARCHAR(20),
        swedish VARCHAR(20),
        synonyms TEXT
    );CREATE UNIQUE INDEX englishIndex ON WORDLIST(english);";
此查询在phpmyadmin中工作

但是当我在php脚本中做同样的事情时

数据库是空的

但是! 如果我删除php中的CreateUnique查询并创建如下表

    $addQuery = "CREATE TABLE IF NOT EXISTS WORDLIST(
        english VARCHAR(20),
        korean VARCHAR(20),
        swedish VARCHAR(20),
        synonyms TEXT
    );
    ";

php可以工作,我就是不明白为什么。我的代码怎么了

这是我的完整php代码

<?php 
header('Access-Control-Allow-Origin: http://localhost:3000/');
$addValue = $_GET['Add'];
if (!preg_match('/[^A-Za-z]+/', $addValue)&&!preg_match('/\s/', $addValue))
 {
include 'db/db_connection.php';
$conn = mysqli_connect('localhost','root','','worddb');
if(connectDB($conn)){
    $addQuery = "CREATE TABLE IF NOT EXISTS WORDLIST(
        english VARCHAR(20),
        korean VARCHAR(20),
        swedish VARCHAR(20),
        synonyms TEXT
    );CREATE UNIQUE INDEX englishIndex ON WORDLIST(english);
    ";
    if (mysqli_query($conn, $addQuery)) {
        echo "Table WORDLIST created successfully";
      }
      echo $addQuery;
      mysqli_close($conn);
  }
 }else{
 echo "search again";
 }
?>

connectDB函数来自db_connection.php

<?php 
function connectDB($conn){
    $connectStatus = null;
    if (!$conn) {
        $connectStatus = false;
        die("Connection failed: " . $conn->connect_error);
    }else{
        echo "Connected successfully";
        $connectStatus = true;
    }
    return $connectStatus;
}
?>


不能在一个
mysqli
查询中组合多个语句
phpmyadmin
正在为您将它们解析为单独的查询。分别发出两条语句,或将索引创建嵌入
创建表

是否尝试运行两个单独的查询?一个
创建表
和一个
创建唯一索引…
query@B001ᛦ, 等等,什么鬼东西?我完全按照你说的做了,$addQuery=createtable。。。。mysqli_查询$addQuery然后$addQuery2=创建索引bla blah mysqli_查询$addQuery2。。。而且工作。。。我不知道有什么技术上的区别…在创建表的过程中添加一个唯一的键只是
,在其他字段之后添加唯一的键englishIndex(english)
。这是否回答了您的问题?(见接受答案的最后一部分)