2012-03-24 5 views
0

Действительно простой вопрос. Я забыл, как бороться с этим конкретным сценарием. С php-файлом я создаю таблицы в базе данных mysql. У меня есть переменная $ query со следующими командами.Простой: создание таблиц в базе данных

$query = "CREATE TABLE IF NOT EXISTS `table1` (
       `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
         `status` int(11) NOT NULL 
      )ENGINE=MyISAM DEFAULT CHARSET=utf8; 

       CREATE TABLE IF NOT EXISTS `table2` (
       `something` varchar(100) NOT NULL, 
       `whatever` text NOT NULL 
      )ENGINE=MyISAM DEFAULT CHARSET=utf8; 
     "; 

Он работает только в том случае, если i exec 1 единственная команда. Когда я запускаю несколько команд CREATE/INSERT/DROP ..., это не работает. Конечно, есть ошибка с синтаксисом, возможно, ; и ,.

ответ

4

mysql_query() не поддерживает несколько операторов в одном и том же вызове.

http://php.net/manual/en/function.mysql-query.php

mysql_query() посылает уникальный запрос (множество запросов не поддерживаются) в настоящее время активной базы данных на сервере, который связан с указанным link_identifier.

1

У вас проблемы не с SQL (ну, я не проверял его должным образом, если честно), но из mysql_query (при условии, что вы его используете): он не допускает множественные запрос.

1

Как указывали другие, функция mysql_query() не поддерживает несколько запросов в одном вызове.

В некоторой степени примечание, если вы в состоянии, вы должны изучить использование mysql_i или PDO вместо старых функций mysql _ *(), которые уступают слишком многим причинам для перечисления здесь.

http://php.net/manual/en/book.mysqli.php

http://php.net/manual/en/book.pdo.php

Смежные вопросы