powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
7 сообщений из 7, страница 1 из 1
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33144881
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть текстовый файл sql, который выполняет создание нескольких таблиц в БД и вставку некоторых записей.

Т.к. просто лень и нет времени для каждого запроса делать отдельную "обработку" в ПХП, то хотелось бы прочитать файл и выполнить все одним запросом.

Проблема в том, что такой вариант не проходит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?PHP

$link = mysql_connect('localhost', 'USER', 'PASS') or die('can\'t connenct');

mysql_select_db('test') or die('can\'t select db');

$query = 'create table foo( foo int not null) 
insert into foo (foo) values (1)';

mysql_query($query) or die(mysql_error());

echo 'good';

?>

Ругается:
Код: plaintext
1.
2.
3.
4.
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 'insert into foo (foo) values (1)' at line  2 

Возможно ли такое вообще? Если да, то как победить?
...
Рейтинг: 0 / 0
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33145074
alextus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
должен быть наверное какой-то разделитель для ddl

например,

$query = '
create table foo( foo int not null)/
insert into foo (foo) values (1)
';

или для oracle

$query = '
create table foo( foo int not null);
insert into foo (foo) values (1)
';

или для MSSQL

$query = '
create table foo( foo int not null)
go

insert into foo (foo) values (1)
go
';

как там для mysql назначено
...
Рейтинг: 0 / 0
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33145179
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вариант не срабатывает
Код: plaintext
1.
2.
3.
4.
5.
6.
...
$query = '
create table foo( foo int not null)/ 
insert into foo (foo) values (1)
';
...

Код: plaintext
1.
2.
3.
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 
'/ insert into foo (foo) values (1)' at line 1

Точно должно работать или нет?

P.S. версия PHP 4.3.10
...
Рейтинг: 0 / 0
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33145461
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не сработает. RTFM.
manualmysql_query -- Посылает запрос MySQL
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33145513
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, только через mysqli->multi_query
...
Рейтинг: 0 / 0
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33145542
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не будет работать, потому что mysqli_* начиная с версии РНР5, а у него 4.3.10.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
    #33145703
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cНе будет работать, потому что mysqli_* начиная с версии РНР5, а у него 4.3.10.
----------------------------------------
Артисты не приехали, приехали цыгане

http://php.rinet.ru/manual/ru/ref.mysqli.phpTo install the mysqli extension for PHP, use the --with-mysqli=mysql_config_path/mysql_config configuration option where mysql_config_path represents the location of the mysql_config program that comes with MySQL versions greater than 4.1 .
А данное расширенние работает на всех серверах (как правило)?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP, mysql_query) Можно ли как-нить одним mysql_query выполнить несколько команд DDL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]