MYSQL) CREATE UNIQUE INDEX работает в phpmyadmin, но не в скрипте php - PullRequest
0 голосов
/ 09 июля 2020

У меня очень простой 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

enter image description here

but when I do the same thing just in php script

enter image description here

database is empty.

BUT! If I remove CREATE UNIQUE query in php and do just CREATE TABLE like this,

    $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;
}
?>

1 Ответ

0 голосов
/ 13 июля 2020

Вы не можете объединить несколько операторов в одном запросе mysqli. phpmyadmin выполняет работу по разбору их на отдельные запросы для вас. Выпустите свои два оператора отдельно или вставьте создание индекса в CREATE TABLE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...