MySQLi не может создать новую таблицу в PHP - PullRequest
0 голосов
/ 04 ноября 2018

Я разочарован выполнением базовых операторов SQL в PHP. Я продолжаю сталкиваться с синтаксическими ошибками, которые просят меня обратиться к текущей версии сервера MySQL.

Я пытаюсь выполнить следующий запрос SQL:

CREATE DATABASE mc_todo_app;

use mc_todo_app;

CREATE TABLE todos (
    id INT PRIMARY KEY AUTO_INCREMENT, 
    task VARCHAR(255) NOT NULL,
    completed BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

В PHP я тогда пытаюсь запустить этот скрипт.

require "config.php";

// Create connection
$conn = mysqli_connect($host, $username, $password);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = file_get_contents('data/init.sql');
$result = mysqli_query($conn, $sql);

if (false === $result) {
  printf("Error: %s\n", mysqli_error($conn));
} else {
  echo "DB and Table successfully created!";
}

mysqli_close($conn);

Это выдает следующее сообщение об ошибке:

Ошибка: у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'use mc_todo_app; СОЗДАТЬ ТАБЛИЦЫ ( id INT ПЕРВИЧНЫЙ КЛЮЧ AUTO_INCREMENT, Tas 'на линии 3

Вот подробности моего сервера баз данных: enter image description here

Я даже безуспешно пытаюсь выполнить базовые утверждения по созданию таблиц в W3Schools.

Что я делаю не так?

1 Ответ

0 голосов
/ 04 ноября 2018

mysqli_query() может выполнять только один запрос за раз, когда вы пытаетесь выполнить несколько запросов. Вы можете использовать mysqli_multi_query() вместо этого.

$sql = file_get_contents('data/init.sql');
$result = mysqli_multi_query($conn, $sql);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...