4 * Store sessions data in Pear DB / ADODB / dba / PDO, ....
8 * Originally by Stanislav Shramko <stanis@movingmail.com>
9 * Minor rewrite by Reini Urban <rurban@x-ray.at> for Phpwiki.
10 * Quasi-major rewrite/decruft/fix by Jeff Dairiki <dairiki@dairiki.org>.
11 * ADODB, dba and PDO classes by Reini Urban.
13 * Warning: Enable USE_SAFE_DBSESSION if you get INSERT duplicate id warnings.
19 * DB handle, or WikiDB object (from which the DB handle will
22 * @param string $table
23 * @return bool|DbSession
24 * Name of SQL table containing session data.
26 function __construct(&$dbh, $table = 'session')
28 // Check for existing DbSession handler
29 $db_type = $dbh->getParam('dbtype');
30 if (is_a($dbh, 'WikiDB')) {
31 @include_once("lib/DbSession/" . $db_type . ".php");
33 $class = "DbSession_" . $db_type;
34 if (class_exists($class)) {
35 // dba has no ->_dbh, so this is used for the session link
36 $this->_backend = new $class($dbh->_backend->_dbh, $table);
40 //Fixme: E_USER_WARNING ignored!
41 trigger_error(sprintf(_("Your WikiDB DB backend ā%sā cannot be used for DbSession.") . " " .
42 _("Set USE_DB_SESSION to false."),
43 $db_type), E_USER_WARNING);
46 function currentSessions()
48 return $this->_backend->currentSessions();
53 return $this->_backend->query($sql);
56 function quote($string)
66 // c-hanging-comment-ender-p: nil
67 // indent-tabs-mode: nil