CREATE TABLE `uri8y_ban_list` ( `ban_id` mediumint(8) UNSIGNED NOT NULL auto_increment, `ban_type` VARCHAR(15) NOT NULL DEFAULT '', `ban_value` VARCHAR(15) NOT NULL DEFAULT '', `ban_reason` TEXT NOT NULL, PRIMARY KEY (`ban_id`) ); CREATE TABLE `uri8y_blocks` ( `block_id` mediumint(8) UNSIGNED NOT NULL auto_increment, `block_position` VARCHAR(50) NOT NULL DEFAULT '', `block_title` VARCHAR(100) NOT NULL DEFAULT '', `block_show_title` BOOL, `block_type` VARCHAR(4) NOT NULL DEFAULT '', `block_content` LONGTEXT NOT NULL, `block_access` TINYINT(4) NOT NULL, `block_groups` LONGTEXT NOT NULL, `block_enabled` BOOL, `block_expire` BOOL, `block_expire_date` INT(11) NOT NULL, `block_expire_action` BOOL, PRIMARY KEY (`block_id`) );
Если их выполнять вместе, то выдаёт ошибку, мол не правильно написано:
QUOTE
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; CREATE TABLE `uri8y_blocks` ( `block_id` medium
А если выполнять по отдельности, то всё работает...
Может я что-то упустил?
Подскажите.
Спустя 23 минуты, 4 секунды (12.01.2007 - 14:37) Ghost написал(а):
а почему ты думаешь что они вместе должны выполняться?
Спустя 19 минут, 22 секунды (12.01.2007 - 14:56) -=[.:NemesiS:.]=- написал(а):
Потому, что должны.<br>А разве нет?<br>т.е. mysql_query("CREATE TABLE `name` (...); CREATE TABLE `name_2` (...);"); не правильно???<br>Вот всё полностью:<br>
// SQL класс class sql { ... // вот функция запроса: function query($query = '') { if($result = @mysql_query($query) return $result; else { echo "Query fail. MySQL return: ".mysql_error(); // ... // запись в лог // ... return false; } } ... } // вот то, что я пытаюсь выполнить: $sql->query("оба запроса"); // ругается, что не могу использовать ; CREATE TABLE `uri8y_blocks` ( `block_id` medium, типа читай документацию echo "<hr>"; $sql->query("первый запрос"); // выполняет echo "<hr>"; $sql->query("второй запрос"); // выполняет Не могу использовать запросы по отдельности, т.к. это фрагмент установщика cmsки и запросы вынесены в отдельный файл: CREATE TABLE `{prefix}ban_list` ( `ban_id` mediumint(8) UNSIGNED NOT NULL auto_increment, `ban_type` VARCHAR(15) NOT NULL DEFAULT '', `ban_value` VARCHAR(15) NOT NULL DEFAULT '', `ban_reason` TEXT NOT NULL, PRIMARY KEY (`ban_id`) ); CREATE TABLE `{prefix}blocks` ( `block_id` mediumint(8) UNSIGNED NOT NULL auto_increment, `block_position` VARCHAR(50) NOT NULL DEFAULT '', `block_title` VARCHAR(100) NOT NULL DEFAULT '', `block_show_title` BOOL, `block_type` VARCHAR(4) NOT NULL DEFAULT '', `block_content` LONGTEXT NOT NULL, `block_access` TINYINT(4) NOT NULL, `block_groups` LONGTEXT NOT NULL, `block_enabled` BOOL, `block_expire` BOOL, `block_expire_date` INT(11) NOT NULL, `block_expire_action` BOOL, PRIMARY KEY (`block_id`) );
Спустя 3 минуты, 54 секунды (12.01.2007 - 15:00) Rem написал(а):
вообще где ты видел чтобы два запроса умещали в 1?<br>сложно что ли сделать так:<br>
и всё выполниться одновременно (почти).
//первый запрос $sQuery=""; mysql_query($sQuery); //второй запрос $sQuery=""; mysql_query($sQuery);
и всё выполниться одновременно (почти).
Спустя 8 минут, 3 секунды (12.01.2007 - 15:08) -=[.:NemesiS:.]=- написал(а):
Представь, что таких запросов может быть несколько десятков.
При том, мне не известно сколько их будет.
Я получаю sql файл (см. выше) и должен его выполнить..
Хотя есть идея через регулярки вытянуть каждый запрос по отдельности и выполнить...
Как думаешь?
При том, мне не известно сколько их будет.
Я получаю sql файл (см. выше) и должен его выполнить..
Хотя есть идея через регулярки вытянуть каждый запрос по отдельности и выполнить...
Как думаешь?
Спустя 1 минута, 31 секунда (12.01.2007 - 15:10) Ghost написал(а):
по-моему нет
вечером посмотрю как в пхп-админе реализовано выполнение запросов через разделитель, чего и тебе советую
вечером посмотрю как в пхп-админе реализовано выполнение запросов через разделитель, чего и тебе советую
Спустя 4 минуты, 14 секунд (12.01.2007 - 15:14) Rem написал(а):
вот тут хз...<br>если только так:<br>
сам не пробовал.
mysql_query("...;","...;");
сам не пробовал.
Спустя 4 минуты, 6 секунд (12.01.2007 - 15:18) -=[.:NemesiS:.]=- написал(а):
А это идея...
Спасибо
Спасибо
Спустя 13 минут, 45 секунд (12.01.2007 - 15:32) Alexander K написал(а):
Привет!
Как написано в официальной документации - Строка запроса НЕ должна заканчиваться точкой с запятой. http://ru2.php.net/manual/ru/function.mysql-query.php
Также там видно, что первый параметр - запрос, второй, необязательный, ссылка на соединение, так что mysql_query("...;","...;"); не пройдет.
Как написано в официальной документации - Строка запроса НЕ должна заканчиваться точкой с запятой. http://ru2.php.net/manual/ru/function.mysql-query.php
Также там видно, что первый параметр - запрос, второй, необязательный, ссылка на соединение, так что mysql_query("...;","...;"); не пройдет.
Спустя 3 часа, 31 минута, 22 секунды (12.01.2007 - 19:03) Vitas написал(а):
phpMyAdmin к примеру разбивает SQL на отдельные запросы и их отдельно выполняет.
Спустя 2 минуты, 52 секунды (12.01.2007 - 19:06) Rem написал(а):
не у него другая проблема.
он сам не знает скока запросов придёт.
мож всё таки делить?
на массив $sQuery и выполнять запрос когда заполниться через цикл.
он сам не знает скока запросов придёт.
мож всё таки делить?
на массив $sQuery и выполнять запрос когда заполниться через цикл.
Спустя 15 часов, 51 минута, 53 секунды (13.01.2007 - 10:58) Leningrad00 написал(а):
А, может, mysql_query(mysql_query("..."))?
Почему нельзя поискать в сети, попробовать сделать и только потом предложить?
Почему нельзя поискать в сети, попробовать сделать и только потом предложить?
_____________
I'll come when you will sleep...