使用PHP在MySQL中创建表时出错

时间:2016-01-16 08:13:12

标签: php mysql database

我正在编写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');

?>

1 个答案:

答案 0 :(得分:4)

您必须使用multi_query()代替query()

$conn->multi_query($query)

在此处查看有关multi_query的详细信息:http://php.net/manual/en/mysqli.multi-query.php