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>";
}

これは最初のテーブルを作成してデータを追加するだけで、他のテーブルは作成されず、エラー メッセージは表示されません (成功メッセージが表示されます)。私は解決策を1時間グーグルで調べてきましたが、何も思いつきません。前のテーブルが作成されるまで、次のテーブルの作成を延期する方法が必要だと思いますか?

私は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 に答える