Можно ли предоставить ресурс mysql переменной $ _SESSION?
//mysqldb.inc.php class mySqlDb { private $link; public function __construct($_host = '', $_db = '', $_user = '', $_pwd = '') { $link = mysql_pconnect(...); } public function query($data) { $r = mysql_query($data, $this->link); return $r; } } //index.php session_start(); include_once('mysqldb.inc.php'); $sqlobj = new mySqlDb(); $sqlobj->dbconnect($db_host, $db_name, $db_user, $db_pwd); $_SESSION['mysqldb'] = $sqlobj; //check.php session_start(); include_once('mysqldb.inc.php'); $sqlobj = $_SESSION['mysqldb']; $sqlobj->query(...);
$sqlobj->query(...)
return
Неустранимая ошибка: main (): сценарий попытался выполнить метод или получить доступ к объекту неполного объекта. Убедитесь, что определение класса «mySqlDb» объекта, который вы пытаетесь использовать, было загружено до вызова unserialize () или предоставления функции __autoload () для загрузки определения класса в D: \ apache \ www \ check.php on строка 4`
Если я использую $_SESSION['mysqldb'] = serialize($sqlobj)
и $sqlobj = unserialize($_SESSION['mysqldb'])
меня есть эта ошибка:
Предупреждение: mysql_query () ожидает, что параметр 2 будет ресурсом, целое число, указанное в D: \ apache \ www \ mysqldb.inc.php on line …
Вы не можете сохранять ресурсы php.
Вот и все: вы просто не можете. Поэтому вам нужно каждый раз подключаться к базе данных.
У вас есть следующее:
$sqlobj = new mySqlDb();
Но тогда вы это делаете:
$_SESSION['mysqldb'] = $sql;
Т.е. вы устанавливаете $_SESSION['mysqldb']
для объекта, который не существует. $sqlobj
этого попробуйте $sqlobj
.