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) в сессию пихаю

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: ошибка естевственно
imper
Отправлено: 19 Января, 2014 - 13:45:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012  
Откуда: Тольятти


Помог: 2 раз(а)

[+]


Уже голову сломал всё обгуглил мануалы прочитал
но ошибка вот такая появилась
ВОПРОС 1
Catchable fatal error: Object of class PDOStatement could not be converted to string in
и это
Fatal error: Exception thrown without a stack frame in Unknown on line 0

всё дело в этих строках
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT id_tema FROM chat_users WHERE id_user = :id_user AND id_tema = :id_tema LIMIT 1";
  2. $_SESSION["sql_prepare_handler"]["msg_chat"] = $db->pdo_obj->prepare($sql);


ВОПРОС 2
вообщем задача стояла в другом, аяксом отсылаю данные на сервер там создаю запрос с помощью пихаю в сессию указатель, и далее когда данные снова отправляются на сервер я просто подставляю данные в этот подготовленный запрос который беру из сессии, но как оказалось мой кривой мозг не знает принципов php и потому получал ошибку
Fatal error: Exception thrown without a stack frame in Unknown on line 0
по поводу второй ошибки уже была создана тема но у меня везде исключения стоят стандартные

помогите пожалуйста, serialize и unserialize уже пробовал там ещё больше ошибок,( хотя сессия автоматически сериализуется)


-----
Самое лучшее решение проблемы
самое простое
 
 Top
Мелкий Супермодератор
Отправлено: 19 Января, 2014 - 14:00:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ресурсы, сокеты не сериализуются. В принципе.
Препарированный запрос не имеет смысла без коннекта к базе, потому не сериализуется так же.


-----
PostgreSQL DBA
 
 Top
imper
Отправлено: 19 Января, 2014 - 14:04:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012  
Откуда: Тольятти


Помог: 2 раз(а)

[+]


то есть бессмысленно подготавливать запрос если пользуюсь аяксом?

задача такая:
юзер отправляет аяксом сообщение серву, и нужно в уже подготовленный запрос просто вставить данные, но увы не получится, так как негде хранить подготовленный запрос?!

блин, пишу что то типо чата, хотел хоть где то выйграть поэксперементировать, выходит без nodejs или демонов не обойтись (

(Отредактировано автором: 19 Января, 2014 - 14:07:13)



-----
Самое лучшее решение проблемы
самое простое
 
 Top
teddy
Отправлено: 19 Января, 2014 - 14:06:45
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Хм... а разве нельзя сделать так? И как такое можно было придумать)))
PHP:
скопировать код в буфер обмена
  1. $json = '{"id_user" : 1, "id_tema" : 2}';//получили данные от клиента в формате json
  2. $data = json_decode($json, true);//преобразовали в ассоциативный массив полученные данные. См print_r($json);
  3. $stmt = $dbh->prepare("SELECT ....");
  4. $stmt->execute(array(':id_user' => $data['id_user'], ':id_tema' => $data['id_tema']));
  5. //print_r($stmt->fetchAll()); получили данные, можно опять в json формате отослать их клиенту.
 
 Top
imper
Отправлено: 19 Января, 2014 - 14:11:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012  
Откуда: Тольятти


Помог: 2 раз(а)

[+]


teddy пишет:
Хм... а разве нельзя сделать так? И как такое можно было придумать)))
PHP:
скопировать код в буфер обмена
  1. $json = '{"id_user" : 1, "id_tema" : 2}';//получили данные от клиента в формате json
  2. $data = json_decode($json, true);//преобразовали в ассоциативный массив полученные данные. См print_r($json);
  3. $stmt = $dbh->prepare("SELECT ....");
  4. $stmt->execute(array(':id_user' => $data['id_user'], ':id_tema' => $data['id_tema']));
  5. //print_r($stmt->fetchAll()); получили данные, можно опять в json формате отослать их клиенту.



ды базару ноль, просто с каждым обращением к скрипту будет подготавливаться один и тот же запрос, а вся суть prepare создал запрос один раз и вставлять туда данные многократно


-----
Самое лучшее решение проблемы
самое простое
 
 Top
caballero
Отправлено: 19 Января, 2014 - 14:44:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в реальности prepared мало ускоряет запросы


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB