X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> pdo prepare foreach
macbeth9
macbeth9
Topic Starter сообщение 5.1.2014, 17:10; Ответить: macbeth9
Сообщение #1


Приветствую всех! Появилась проблема, нужно сделать несколько запросов INSERT + UPDATE, вообщем передем сразу к проблеме.

Имеется код

[PHP]

// массив с данными
$to_bind[] = array($row['amount'], $user['id'], $row['item']);

добавляем еще один...
$to_bind[] = array($row['amount'], $user['id'], $row['item']);


$sql = $connect->prepare("
UPDATE `users` SET `balance` = `balance` - ? WHERE `id` = ? LIMIT 1;
DELETE FROM `cart` WHERE `item` = ?;
");

foreach($to_bind as $ex) {
$sql->execute($ex);
}
[/PHP]

Например массив $to_bind имеет значения двух записей, получается

[PHP]Array ( [0] => Array ( [0] => 28.00 [1] => 9 [2] => 369177 ) [1] => Array ( [0] => 28.00 [1] => 9 [2] => 369171 )

)[/PHP]

Выполняем запрос и получаем результать: запрос выполнен только для одной записи массива, для первой. Если убрать из запроса update или insert, т.е. оставить что-то одно, то после этого запрос будет выполнен для двух значений массива.
Почему так происходит? Помогите пожалуйста =)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Seravin
Seravin
сообщение 6.1.2014, 2:54; Ответить: Seravin
Сообщение #2


ну вообще, не знаю как реализован там класс для работы с бд, но думаю что проблема в том, что множественные запросы не поддерживаются. Надо update в одном запросе делать, delete в другом. А delete можно одним запросом сделать как-то так:
[PHP]
$deleteIds = array(1,2,3);
$sql = $connect->prepare("DELETE FROM `cart` WHERE `item` in (?)");
$sql->execute(implode(',',$deleteIds));// ну или если там нужно загонять массивом array(implode(',',$deleteIds))
[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 26.4.2024, 5:32
Дизайн