MYSQL)在phpmyadmin中创建唯一索引,但不在php脚本中
我有一个非常简单的SQL脚本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);"; 此查询
$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)
。这是否回答了您的问题?(见接受答案的最后一部分)