[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PDO Множественные запросы
maruo
Как на 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);
AllesKlar
Конкретно по этому примеру, то зачем один и тот же запрос отправлять в цикле?
замечательно отработает
user_id = ? OR user_id = ? OR user_id = ? OR ....
или
user_id = IN (......)


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

_____________
[продано копирайтерам]
maruo
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'"
;


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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.