dbh = $dbh; } function fetchRow() { return $this->fetch(); } function numRows() { return $this->rowCount(); } } class MDB3 extends PDO { function __construct($dsn, $username="", $password="", $driver_options=array()) { parent::__construct($dsn,$username,$password, $driver_options); $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('MDB3Statement', array($this))); $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } function query($sql, $mode = null, ...$params) { global $ALOCAL; if ($ALOCAL['debug']) error_log($sql, 3, '/tmp/php.log'); $stmt = parent::prepare($sql); $stmt->execute($params); return $stmt; } function getAll($query) { $stmt = $this->query($query); return $stmt->fetchAll(); } function setOption($option,$val) { if ('persistent' === $option) $this->setAttribute(PDO::ATTR_PERSISTENT, $val); } function autoCommit($autocommit) { if (! $autocommit && ! $this->inTransaction()) $this->beginTransaction(); } function slaveOK() { $resultat = $this->query('show slave status'); $etat = $resultat->fetch(); if ($etat && $etat['Slave_IO_Running'] == 'Yes' && $etat['Slave_SQL_Running'] == 'Yes') return TRUE; return FALSE; } } class PEAR { static function isError($obj) { return FALSE; } } class DB extends PEAR { static function &connect($dsn, $options = array()) { if (! is_array($dsn) && strpos($dsn,'//')) { $parts = explode('/', $dsn); list($dsna['phptype']) = explode(':', $parts[0]); list($creds , $dsna['hostspec']) = explode('@', $parts[2]); list($dsna['username'], $dsna['password']) = explode(':', $creds); $dsna['database'] = $parts[3]; $dsn = $dsna; } if (is_array($dsn)) $obj = new MDB3($dsn['phptype'].':host='.$dsn['hostspec'].';dbname='.$dsn['database'], $dsn['username'], $dsn['password']); else $obj = new MDB3($dsn); $obj->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $obj->dsn = $dsn; return $obj; } } if (! function_exists('mysql_connect')) { function mysql_connect($server, $login, $password) { global $DSN, $DB; if ($DB instanceof MDB3) return TRUE; $DSN = array('phptype' => 'mysql', 'username' => $login, 'password' => $password, 'hostspec' => $server); try { $DB = new PDO($DSN['phptype'].':host='.$DSN['hostspec'], $DSN['username'], $DSN['password']); $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { return FALSE; } return true; } function mysql_select_db($db) { global $DSN, $DB; if ($DB instanceof MDB3) return TRUE; $DSN['database'] = $db; try { $DB = new PDO($DSN['phptype'].':host='.$DSN['hostspec'].';dbname='.$DSN['database'], $DSN['username'], $DSN['password']); $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { return FALSE; } return true; } function mysql_query($query) { global $DB; return $DB->query($query); } function mysql_num_rows($statement) { return $statement->rowCount(); } function mysql_fetch_array($statement, $params = NULL) { return $statement->fetch(); } function mysql_fetch_assoc($statement, $params = NULL) { return $statement->fetch(); } function mysql_error($statement = NULL) { return 'No Error Today'; } }