Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> PDO Множественные запросы
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 24 дня
Карма: 1




Как на PDO реализовать множественные запросы?

Сделал такой костыль , насколько адекватно, и как правильно сделать, передаю массив с sql запросами и параметрами


function maxExecude($array){
$link = PDO_DataBase::getInstance()->getConnection();

foreach($array as $key => $value){
foreach ($value as $sql => $params) {

$link_sql = $link->prepare($sql);
$link_sql->execute(array($params));
$res[] = $link_sql->fetch();
$link_sql->closeCursor();

}

}


return $res;
}
$arr = array(
array('select * from users where user_id=?' => 44),
array('select * from users where user_id=?' => 55)
);

$result = maxExecude($arr);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 11 дней
Карма: 170




Конкретно по этому примеру, то зачем один и тот же запрос отправлять в цикле?
замечательно отработает
user_id = ? OR user_id = ? OR user_id = ? OR ....
или
user_id = IN (......)


Что же касается prepare(), то его не нужно гнать в цикле. Запрос подготавливается один раз, а дальше в цикле биндятся параметры bindParam() и пускается на выполнение запрос execute()


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 24 дня
Карма: 1




AllesKlar
Такой запрос лишь для примера, на самом деле запросы посложнее там есть.

Например

  $sql = "SELECT * FROM users WHERE user_id=?";
$sql_2 = "SELECT l.item_id,f.i_name,f.i_rare,f.i_price,f.i_img
FROM lottery_winner l
LEFT JOIN full_base_item f ON(l.item_id=f.item_id)
WHERE l.winner_user_id=?
AND l.status='have'"
;


Просто для чего мне цикл, например что бы не городить длинный код, а все это в функции сделать, Передал в функцию запросы которые нужны и к ним параметры и все , тебе вернулись данные
Вот и капаю , думаю как там функцию реализовать , что бы и адекватно было, и динамично

Это сообщение отредактировал maruo - 8.05.2016 - 19:51
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса