Я пытаюсь передать сессию с mysqli соединением для нескольких запросов на сайте, но когда я пытаюсь сделать запрос, это производит предупреждение, "Не мог выбрать mysqli"
$_SESSION['db']=new mysqli($host,$username,$password,$db);
Действительно ли невозможно передать mysqli ссылку соединения через сессию? существует ли другой метод для использования?
Да, явно невозможно.
Смотри Документация PHP здесь Упоминание в выделенном предупреждении: «Некоторые типы данных не могут быть сериализованы таким образом сохранены в сеансах. Он включает в себя переменные ресурса или объекты с круглыми ссылками (то есть объекты, которые проходят Ссылка на себя к другому объекту). «
MySQL-соединения являются одним из таких ресурсов.
Вы должны подключиться на каждой странице.
Это не так плохо, как звучит, если вы можете полагаться на объединение соединения через MySQL_PCONNECT () , но сначала увидеть больше фоновой информации на MySQL_PConnect () в . Эта статья .
Соединения базы данных являются ресурсами и не могут храниться на сеансе. Вам придется восстановить соединение на каждой странице или использовать постоянное соединение (PHP 5.3+).
Да - вы не можете пройти через сеанс. Ручка специфична для запроса. Вы можете поставить его в общий ресурс, такой как Memcache, и извлеките ручку, когда вам это нужно.
Тем не менее, если вы используете объединение соединений, схватив новую ручку при необходимости (и закрывая его, когда вы готовы) не является большим ударом производительности.
Всегда зависит от ваших потребностей, но да, я бы либо: