mysqli无法在php中创建新表

7eumitmz  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(401)

我对在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\u todo\u app”附近的正确语法;创建表todos(id int primary key auto\ U increment,tas'位于第3行
以下是我的数据库服务器的详细信息:

我甚至尝试了w3schools的基本表创建语句,但都没有成功。
我做错什么了?

qrjkbowd

qrjkbowd1#

mysqli_query() 在尝试执行多个查询时,一次只能执行一个查询。你可以用 mysqli_multi_query() 相反。

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

http://php.net/mysqli.multi-query

相关问题