1

我需要一次创建大量表并使用 PHP 和 MySQL 将数据添加到第一个表中。我的代码如下所示:

$sql = "CREATE TABLE table1 (
code VARCHAR(5) PRIMARY KEY,
name VARCHAR(50) NOT NULL
);";

//adding businesses to table
$sql .= "INSERT INTO table1 (code, name)
VALUES ('CODE', 'name');";
//^this basic idea is run a few more times

$sql .= "CREATE TABLE table2 (
code VARCHAR(5) PRIMARY KEY,
name VARCHAR(50) NOT NULL
);";
//^same basic thing run a bunch more times w/ variations to columns

if ($conn->multi_query($sql) === TRUE) {
echo "<p>Tables created.</p>
<a href=\"adduser_form.php\">Continue</a>";
} else {
    echo "<p>Error creating tables: " . $conn->error . "</p>";
}

这只会创建第一个表并将数据添加到其中,它不会创建任何其他表并且我没有收到错误消息(显示成功消息)。我已经在谷歌上搜索了一个小时的解决方案,但我什么也想不出来。我在想我需要一种方法来推迟创建下一个表,直到创建前一个表?

我对 MySQL 很陌生,所以非常感谢新手友好:)

4

1 回答 1

0

尝试在 SQL 语句中使用反引号,例如:

$sql .= "CREATE TABLE `table2` (
    `code` VARCHAR(5) PRIMARY KEY,
    `name` VARCHAR(50) NOT NULL
);";

您还应该在 INSERT 语句(以及您的第一个 CREATE 查询)中使用反引号。

如果我没记错的话,name是保留字。

于 2015-11-08T07:52:25.177 回答