Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [MySQL] Мульти-запрос, Несколько запросов из PHP 
:(
    Опции темы
CyClon
Дата 27.2.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Хочу узнать, поддерживает ли PHP возможность делать несколько запросов, например так:

Код
<?php

$query = "SELECT * FROM table1;
          SELECT * FROM table2;
          SELECT * FROM table3;
          UPDATE table1 SET name=123 WHERE id=1";

$result = mysql_query($result);

$array = mysql_fetch_array($result);

?>


Или хотя бы без вывода результата...

Код
<?php

$query = "SELECT * FROM table1;
          SELECT * FROM table2;
          SELECT * FROM table3;
          UPDATE table1 SET name=123 WHERE id=1";

$result = mysql_query($result);

echo ($result) ? 'true' : 'false';

?>


Если такой топик уже есть  - пинайте безжалостно.

Добавлено @ 17:29 
Если так как я написал работать не будет, есть ли альтернативные способы? Нужно выполнить запросы из файла db.sql, например.


--------------------
user posted image
PM   Вверх
mishaSL
Дата 27.2.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Цитата(CyClon @  27.2.2007,  17:26 Найти цитируемый пост)
Хочу узнать, поддерживает ли PHP возможность делать несколько запросов, например так:


Насколько я помню нет.


Цитата(CyClon @  27.2.2007,  17:26 Найти цитируемый пост)
Нужно выполнить запросы из файла db.sql


Если вручную, то можно через консоль без проблем.



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Бонифаций
Дата 27.2.2007, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



зависит от версии mysql . Если до 5.0 то мультизапросы не поддерживаются вообще. 

Начиная с 5.0 можно посылать несколько запросов в одной строке разделенными ; но только если соединился используя специяльную опцию CLIENT_MULTI_STATEMENTS в флагах соединения. Как это делается в php - хрен его знает.  Что то вроде

$link = mysql_connect("localhost", "root", "xxxx",CLIENT_MULTI_STATEMENTS) 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
CyClon
Дата 27.2.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Тяжело... smile Спасибо за помощь. Может кто-то скажет иначе и докажет на примере? smile


--------------------
user posted image
PM   Вверх
Mal Hack
Дата 27.2.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



CyClon, тебе выше все написали, неужели сложно проверить самому?
PM ICQ   Вверх
romantik
Дата 27.2.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.2.2007
Где: Kiev

Репутация: нет
Всего: 1



а может считать файл в переменную, потом в массив explode(';',$variable) и в цикл?  smile 
PM MAIL WWW ICQ   Вверх
mishaSL
Дата 27.2.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



CyClon, я делал так из консоли вручную для заливки большого дампа:
Код

mysql -uUSER -pPASSWORD  DB_NAME< "/home/.../public_html/db.sql"


Если на сервере разрешено, можешь попробывать из PHP.



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
CyClon
Дата 27.2.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Да, сенк за помощь, из консоли то ясно конечно, но интересует из скрипта %) Вот еще нашел инфу по UNION, буду разбираться smile


--------------------
user posted image
PM   Вверх
Бонифаций
Дата 27.2.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



Цитата(romantik @  27.2.2007,  20:11 Найти цитируемый пост)
а может считать файл в переменную, потом в массив explode(';',$variable) и в цикл?  smile  


А если ; попадется в строковой константе в селекте например?

select concat(fld,";") from tbl




--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Рыжий
Дата 27.2.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Цитата(romantik @  27.2.2007,  20:11 Найти цитируемый пост)
а может считать файл в переменную, потом в массив explode(';',$variable) и в цикл?  smile

Сколько тогда запросов к БД будет? около 20-50 (к примеру), это не критично для сервера?

Это сообщение отредактировал(а) Рыжий - 27.2.2007, 22:52
PM MAIL ICQ   Вверх
CyClon
Дата 28.2.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Цитата
около 20-50 (к примеру), это не критично для сервера?


Конечно нет, та же PHP-Nuke бажная делала до 200 запросов на каждой странице и ее как-то терпели...

Вообще, такое использовать нужно только в скриптах, запускаемых админом... Например установка CMS.


--------------------
user posted image
PM   Вверх
romantik
Дата 28.2.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.2.2007
Где: Kiev

Репутация: нет
Всего: 1



у меня на сервере в секунду выполняеться около 250 запросов smile и ниче-так...
насчет константы - можна условие написать  smile 
PM MAIL WWW ICQ   Вверх
mishaSL
Дата 28.2.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54



Если используешь PHP5, то можешь воспользоваться:
http://ru.php.net/manual/ru/function.mysqli-multi-query.php

Добавлено @ 16:11 
Работает бысто и удобно.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1020 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.