我正在编写PHP脚本以创建Database
,然后使用它创建Table
。我假设我正在使用正确的MySQL语法,但我正在解决这个错误 - Error creating table: 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 'USE website; CREATE TABLE users ( id INT(11) UNSIGNED AUTO_INCREMENT PRI' at line 2
以下是我的PHP
脚本 - create_db.php
<?php
function create_database($hostname, $username, $password) {
$h = $hostname;
$u = $username;
$p = $password;
$conn = new mysqli($h, $u, $p);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "CREATE DATABASE website;
USE website;
CREATE TABLE users (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(255) NOT NULL,
lastname VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
hash VARCHAR(255) NOT NULL,
forgot_password_hash VARCHAR(255) NOT NULL,
status ENUM('1', '0') NOT NULL
);";
if ($conn->query($sql) === TRUE) {
echo "Table users created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
}
create_database('localhost', 'root', 'root');
?>
答案 0 :(得分:4)
您必须使用multi_query()
代替query()
$conn->multi_query($query)
在此处查看有关multi_query
的详细信息:http://php.net/manual/en/mysqli.multi-query.php