Я пытаюсь создать более одной таблицы MySQL, используя php, но он дает ошибки, и я не могу разобраться, что с ним не так.
PHP-код:
$sql = ' CREATE TABLE IF NOT EXISTS `mod_reminder_entries` ( `id` INT(10) NOT NULL auto_increment, `user_id` INT(10) NOT NULL, `entry_name` VARCHAR(255) NOT NULL, `entry_value` INT(10) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`) ); CREATE TABLE IF NOT EXISTS `second_table` ( `user_id` INT(10) NOT NULL, `fieldstotal` INT(10) NOT NULL, FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`) ); '; mysql_query($sql);
Он дает ошибку, кроме того, не беспокойтесь о соединении mysql. Я правильно соединился с БД, и я его протестировал, это определенно некорректно с синтаксисом.
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'CREATE TABLE IF NOT EXISTS
second_table
(user_id
INT
Вы не можете использовать запросы с запятой с помощью mysql_query
, эта функция позволяет только один запрос за раз!
Вы должны выполнять свои заявления отдельно:
mysql_query(" CREATE TABLE IF NOT EXISTS `mod_reminder_entries` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `user_id` INT(10) NOT NULL, `entry_name` VARCHAR(255) NOT NULL, `entry_value` INT(10) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`) ) ") or die(mysql_error()); mysql_query(" CREATE TABLE IF NOT EXISTS `second_table` ( `user_id` INT(10) NOT NULL, `fieldstotal` INT(10) NOT NULL, FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`) ) ") or die(mysql_error());
Или лучше, используйте mysqli_multi_query – это означает, что вы должны переключиться на mysqli .
Просто сделайте то, что говорит сообщение об ошибке.
Вы можете выполнять только один запрос за раз с помощью mysql_*
но, пожалуйста, не используйте функции mysql_*
в новом коде . Они больше не поддерживаются и официально устарели . См. Красную рамку ? Узнайте о подготовленных инструкциях и используйте PDO или MySQLi – эта статья поможет вам решить, какой из них. Если вы выберете PDO, вот хороший учебник .