MySQLi无法在PHP中创建新表

时间:2018-11-04 11:28:37

标签: php mysql database mysqli

我对在PHP中运行基本SQL语句感到沮丧。我一直遇到语法错误,要求我引用当前的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获得基本的Table创建语句,都没有成功。

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

mysqli_query()一次只能执行一个查询,而您尝试执行多个查询。您可以改用mysqli_multi_query()

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