如何在单个tables.sql文件中编写多个查询并使用PHP上传?

我想要的只是通过 PHP 使用文件创建 2 个或更多表tables.sql。


PHPcreate_db.php

<?php

require 'config.php';



$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD);

/* check connection */

if($mysqli->connect_errno){

  echo "MySQL connection failed.<br>";

  exit();

}else{

  echo "MySQL successfully connected.<br>";

}


// DB create

if($mysqli->query('CREATE DATABASE IF NOT EXISTS '.DB_NAME.';') === TRUE){

  echo "Database successfully created.<br>";

}else{

  echo "Error: ".$mysqli->errno.", ".$mysqli->error."<br>";

}


// DB select

if($mysqli->select_db(DB_NAME) === TRUE){

  echo "Database successfully selected.<br>";

}else{

  echo "Error: ".$mysqli->errno.", ".$mysqli->error;

}


// Create tables

if($mysqli->query(file_get_contents('../sql/tables.sql')) === TRUE){

  echo "Tables successfully created.<br>";

}else{

  echo "Error: ".$mysqli->errno.", ".$mysqli->error."<br>";

}


$mysqli->close();

?>

DB_HOST、DB_USER、DB_PASSWORD、DB_NAME 在 config.php 文件中定义


PHP v7.4.7


SQLtables.sql

CREATE TABLE IF NOT EXISTS `users` (

  `id` int(11) NOT NULL auto_increment,

  `username` varchar(100) NOT NULL,

  `password` varchar(100) NOT NULL,

  PRIMARY KEY (`id`)

);

CREATE TABLE IF NOT EXISTS `status` (

  `status` varchar(100) NOT NULL,

  `IDtime` varchar(100) NOT NULL

);

如果我使用命令行将此tables.sql 文件直接上传到MySQL 服务器,它就可以工作。


MySQL v8.0.20 MySQL 社区服务器 - GPL


错误信息

错误:1064,您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 16 行的'CREATE TABLE IF NOT EXISTS status( varchar(100) NOT NULL, `IDt' 附近使用的正确语法status


翻阅古今
浏览 106回答 1
1回答

长风秋雁

例子:$result = $mysqli->query("SELECT * FROM reservations;SELECT * FROM reservations");var_dump($result, $mysqli->error);bool(false)string(172) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM reservations' at line 1"$result = $mysqli->multi_query("SELECT * FROM reservations;SELECT * FROM reservations");var_dump($result, $mysqli->error);bool(true)string(0) ""
打开App,查看更多内容
随时随地看视频慕课网APP