【问题标题】:MySQLi cannot create new table in PHPMySQLi 无法在 PHP 中创建新表
【发布时间】:2018-11-04 11:28:36
【问题描述】:

我对在 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 PRIMARY KEY AUTO_INCREMENT, 任务在第 3 行

以下是我的数据库服务器的详细信息:

我什至尝试了来自 W3Schools 的基本表创建语句,但没有成功。

我做错了什么?

【问题讨论】:

  • mysqli_query 执行一个查询。
  • @u_mulder 仍然无法运行创建表查询。
  • 你希望我猜到错误吗?

标签: php mysql database mysqli


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    相关资源
    最近更新 更多