Не удается передать соединение mysqli в сеансе в php

Я пытаюсь передать сеанс с подключением mysqli для нескольких запросов на сайте, но когда я пытаюсь выполнить запрос, он выдает предупреждение «Не удалось получить mysqli»,

$_SESSION['db']=new mysqli($host,$username,$password,$db); 

Невозможно передать ссылку на соединение mysqli через сеанс? есть ли другой способ использования?

Solutions Collecting From Web of "Не удается передать соединение mysqli в сеансе в php"

Да, это явно невозможно.

См. Раздел « Документация по PHP», в котором упоминается выделенное предупреждение. «Некоторые типы данных не могут быть сериализованы, поэтому они хранятся в сеансах. Они включают переменные ресурсов или объекты с циклическими ссылками (т.е. объекты, которые передают ссылку на себя другому объекту)».

Соединения MySQL – один из таких ресурсов.

Вы должны повторно подключиться к каждой странице.

Это не так плохо, как кажется, если вы можете полагаться на объединение пулов через mysql_pconnect () , но сначала посмотрите больше информации о предыстории на mysql_pconnect () в этой статье .

Соединения с базами данных являются ресурсами и не могут быть сохранены в сеансе. Вам нужно будет перестроить соединение на каждой странице или использовать постоянное соединение (PHP 5.3+).

Да, вы не можете пройти через сеанс. Ручка специфична для запроса. Возможно, вы сможете разместить его в общем ресурсе, таком как memcache, и извлечь дескриптор, когда вам это нужно.

Однако, если вы используете пул соединений, захват нового дескриптора, когда вам нужно (и закрытие его при завершении), не является большим успехом.

Всегда зависит от ваших потребностей, но да, я бы:

  • Создайте новый дескриптор, когда вам это нужно / за запрос / (включите пул соединений)
  • Привязать dbhandle в memcache