Мне нужно создать большое количество таблиц одновременно и добавить данные в первую, используя 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, поэтому новичкам будет очень приятно 🙂
Попробуйте использовать обратные пометки в своих инструкциях SQL, например:
$sql .= "CREATE TABLE `table2` (
`code` VARCHAR(5) PRIMARY KEY,
`name` VARCHAR(50) NOT NULL
);";
Вы также должны использовать обратные пометки в своем выражении INSERT (и первом запросе CREATE).
Если я не ошибаюсь, name
зарезервированное слово.
Других решений пока нет …