Я пишу сценарий 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');
?>
Вы должны использовать multi_query()
вместо query()
$conn->multi_query($query)
Смотрите более подробную информацию о multi_query
Вот: http://php.net/manual/en/mysqli.multi-query.php
Других решений пока нет …