Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Запрос в PDO после которого никакие запросы не проходят
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
Странная ситуация у меня сложилась, написал инсталятор для системы, ядро устанавливает без проблем и далее начинает ставить модули которые накиданы в папки, первый устанавливает дальше не проходит, начал разбираться выводить Var_dump, echo по модулям. Все операции проходят хорошо кроме запросов.
то сам он выполняется и в базу пишет, но после него не проходят никакие запросы, использую PDO в первый раз столкнулся с такой странностью... помогите вобщем (Добавление)
ну конечно после:
INSERT INTO system_users_action VALUES('','post_create_new_file_form','Форма создания папки или файла','0','file_manager');
INSERT INTO system_users_action VALUES('','post_load_directory','Показать файлы в директории','0','file_manager');
INSERT INTO system_users_action VALUES('','post_load_name_file','Форма редактирования имени файла','0','file_manager');
INSERT INTO system_users_action VALUES('','post_rename_file','Переименовать файл','1','file_manager');
INSERT INTO system_users_action VALUES('','post_file_manager_upload','Загрузка файлов','1','file_manager');
INSERT INTO system_users_action VALUES('','post_delete_file_or_directory','Удалить файл или директорию','1','file_manager');
INSERT INTO system_users_action VALUES('','post_create_new_file','Создать новый файл или папку','1','file_manager');
INSERT INTO system_users_action VALUES('','post_load_file','Просмотр содержимого файла','0','file_manager');
INSERT INTO system_users_action VALUES('','post_save_file','Сохранить файл после редактирования','1','file_manager');
INSERT INTO system_users_action VALUES('','get_download_file','Скачать файл','1','file_manager');
";
$stmt=$DBH->query($query_file_manager);
do{
$rowset=$stmt->fetchAll(PDO::FETCH_NUM);
if($rowset){
printResultSet($rowset,$i);
}
$i++;
}while($stmt->nextRowset());
только честно не понимаю записи
OrmaJever
Отправлено: 01 Октября, 2014 - 20:29:55
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
3d_killer пишет:
только честно не понимаю записи
У самого похожая ситуация. Может какой-то Мелкий зайдёт и расскажет что к чему)) Раз работает это уже хорошо
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
3d_killer
Отправлено: 01 Октября, 2014 - 20:45:09
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
согласен , еще раз спасибо
Мелкий
Отправлено: 01 Октября, 2014 - 21:07:40
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
OrmaJever пишет:
Может какой-то Мелкий зайдёт и расскажет что к чему))
Может быть даже не какой-то, а вполне определённый. Да, может быть. Сейчас посовещаемся, может быть кто-нибудь из нас хочет высказаться...
Сначала пишут непонятно что, потом удивляются, почему оно непонятно как и работает. Если вы не знаете, почему это работает, вероятно, оно и не работает на самом деле.
Ммм, не тот Мелкий получил право голоса, да?
Никогда не доводилось делать мультизапросы. Всё равно их надо оборачивать в транзакцию - так какая разница? Зато удобнее понимать, какой именно запрос исключение бросил, удобнее обрабатывать результаты (или оные результаты игнорировать, тоже удобнее).
Раз уж делаете prepare - то и отделите запрос на запись и используйте его несколько раз с нужными данными.
Что за магия с nextRowset? Каждый запрос из пачки может быть select'ом, каждый select может возвращать разные количества строк и столбцов. Более того, тут могут быть намешаны всякие insert'ы, update - т.е. совершенно разные результаты всего api объекта. А так сказал nextRowset - и получил следующий ответ на запрос. Вполне логичный вариант. И как показано выше, mysqli делает по факту то же самое.
----- PostgreSQL DBA
teddy
Отправлено: 01 Октября, 2014 - 21:12:42
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Мелкий пишет:
Может быть даже не какой-то, а вполне определённый. Да, может быть. Сейчас посовещаемся, может быть кто-нибудь из нас хочет высказаться...
Сначала пишут непонятно что, потом удивляются, почему оно непонятно как и работает. Если вы не знаете, почему это работает, вероятно, оно и не работает на самом деле.
Ммм, не тот Мелкий получил право голоса, да?
Нет, это тот самый Мелкий который нам и нужен!
А по теме я не совсем понял. Да, запросов много и что бы получить доступ к результатам каждого нужно использовать nextRowset, это логично. Но почему не получаеться сделать последующие запросы пока все результаты не пройдёшь? Это уже не логично, хотя может не так понял.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
3d_killer
Отправлено: 02 Октября, 2014 - 07:38:42
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.