मैं अभी यह काम करने में कामयाब रहा:
My application.ini:
resources.db.isDefaultTableAdapter = true
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.dbname = "dbname"
resources.db.params.username = "username"
resources.db.params.password = "password"
मेरा बूटस्ट्रैप.php:
protected function _initSession() {
$resource = $this->getPluginResource('db');
$dbAdapter = $db = $resource->getDbAdapter();
Zend_Registry::set("db", $dbAdapter);
Zend_Db_Table_Abstract::setDefaultAdapter($dbAdapter);
$config = array(
'name' => 'session',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime',
'db' => $dbAdapter
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::start();
}
जब आप पहली बार Zend_Session_Namespace ऑब्जेक्ट का निर्माण करते हैं, तो इस फ़ंक्शन को bootstrap.php में पहले फ़ंक्शन के रूप में रखा गया था, क्योंकि सत्र प्रारंभ होते हैं। यदि आप ऐसा करते हैं, तो _initSession()-फ़ंक्शन को कॉल करने से पहले, एक मानक फ़ाइल-आधारित सत्र प्रारंभ किया जा सकता है।
अंत में, session.sql:
DROP TABLE IF EXISTS `session`;
CREATE TABLE `session` (
`id` char(32) NOT NULL DEFAULT '',
`modified` int(11) DEFAULT NULL,
`lifetime` int(11) DEFAULT NULL,
`data` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
कहीं मैंने पढ़ा है कि तालिका InnoDB होनी चाहिए।