| | |
| | | return new $class($db_dsnw, $db_dsnr, $pconn); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Object constructor |
| | | * |
| | | * @param string $db_dsnw DSN for read/write operations |
| | | * @param string $db_dsnr Optional DSN for read only operations |
| | | * @param bool $pconn Enables persistent connections |
| | | * @param string $db_dsnw DSN for read/write operations |
| | | * @param string $db_dsnr Optional DSN for read only operations |
| | | * @param bool $pconn Enables persistent connections |
| | | */ |
| | | public function __construct($db_dsnw, $db_dsnr = '', $pconn = false) |
| | | { |
| | |
| | | $this->init(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Initialization of the object with driver specific code |
| | | */ |
| | | protected function init() |
| | | { |
| | | // To be used by driver classes |
| | |
| | | return $dbh; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Driver-specific preparation of database connection |
| | | * |
| | | * @param array $dsn DSN for DB connections |
| | | */ |
| | | protected function conn_prepare($dsn) |
| | | { |
| | | } |
| | | |
| | | /** |
| | | * Driver-specific configuration of database connection |
| | | * |
| | | * @param array $dsn DSN for DB connections |
| | | * @param PDO $dbh Connection handler |
| | | */ |
| | | protected function conn_configure($dsn, $dbh) |
| | | { |
| | | } |
| | | |
| | | /** |
| | | * Driver-specific database character set setting |
| | | * |
| | | * @param string $charset Character set name |
| | | */ |
| | | protected function set_charset($charset) |
| | | { |
| | | $this->query("SET NAMES 'utf8'"); |
| | | } |
| | | |
| | | /** |
| | | * Connect to appropiate database depending on the operation |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Activate/deactivate debug mode |
| | | * |
| | |
| | | { |
| | | $this->options['debug_mode'] = $dbg; |
| | | } |
| | | |
| | | |
| | | protected function set_charset($charset) |
| | | { |
| | | $this->query("SET NAMES 'utf8'"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Getter for error state |
| | |
| | | return $this->db_error ? $this->db_error_msg : false; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Connection state checker |
| | | * |
| | |
| | | return !is_object($this->dbh) ? false : $this->db_connected; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Is database replication configured? |
| | | * This returns true if dsnw != dsnr |
| | |
| | | { |
| | | return !empty($this->db_dsnr) && $this->db_dsnw != $this->db_dsnr; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Execute a SQL query |
| | |
| | | return $this->_query($query, 0, 0, $params); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Execute a SQL query with limits |
| | | * |
| | |
| | | |
| | | return $this->_query($query, $offset, $numrows, $params); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Execute a SQL query with limits |
| | |
| | | return $this->_add_result($query); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Get number of affected rows for the last query |
| | | * |
| | |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Get last inserted record ID |
| | |
| | | return $id; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Get an associative array for one row |
| | | * If no query handle is specified, the last query will be taken as reference |
| | |
| | | return $this->_fetch_row($result, PDO::FETCH_ASSOC); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Get an index array for one row |
| | | * If no query handle is specified, the last query will be taken as reference |
| | |
| | | $result = $this->_get_result($res_id); |
| | | return $this->_fetch_row($result, PDO::FETCH_NUM); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Get col values for a result row |
| | |
| | | return $result->fetch($mode); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Adds LIMIT,OFFSET clauses to the query |
| | | * |
| | |
| | | |
| | | return $query; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Returns list of tables in a database |
| | |
| | | return $this->tables; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Returns list of columns in database table |
| | | * |
| | |
| | | |
| | | return array(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Formats input so it can be safely used in a query |
| | |
| | | return 'NULL'; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Quotes a string so it can be safely used as a table or column name |
| | | * |
| | |
| | | { |
| | | return $this->quote_identifier($str); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Quotes a string so it can be safely used as a table or column name |
| | |
| | | return implode($name, '.'); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return SQL function for current time and date |
| | | * |
| | |
| | | { |
| | | return "now()"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return list of elements for use with SQL's IN clause |
| | |
| | | return implode(',', $arr); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return SQL statement to convert a field value into a unix timestamp |
| | | * |
| | |
| | | return "UNIX_TIMESTAMP($field)"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return SQL statement to convert from a unix timestamp |
| | | * |
| | |
| | | { |
| | | return date("'Y-m-d H:i:s'", $timestamp); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return SQL statement for case insensitive LIKE |
| | |
| | | { |
| | | return $this->quote_identifier($column).' LIKE '.$this->quote($value); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Abstract SQL statement for value concatenation |
| | |
| | | |
| | | return '(' . join(' || ', $args) . ')'; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Encodes non-UTF-8 characters in string/array/object (recursive) |
| | |
| | | return utf8_encode($input); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Decodes encoded UTF-8 string/object/array (recursive) |
| | | * |
| | |
| | | return utf8_decode($input); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Adds a query result and returns a handle ID |
| | | * |
| | |
| | | |
| | | return $res_id; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Resolves a given handle ID and returns the according query handle |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return correct name for a specific database table |
| | | * |
| | |
| | | |
| | | return $table; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Return correct name for a specific database sequence |
| | |
| | | return $sequence; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * MDB2 DSN string parser |
| | | * |
| | | * @param string $sequence Secuence name |
| | | * |
| | | * @return array DSN parameters |
| | | */ |
| | | public static function parse_dsn($dsn) |
| | | { |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns PDO DSN string from DSN array (parse_dsn() result) |
| | | * Returns PDO DSN string from DSN array |
| | | * |
| | | * @param array $dsn DSN parameters |
| | | * |
| | | * @return string DSN string |
| | | */ |
| | | protected function dsn_string($dsn) |
| | | { |
| | |
| | | } |
| | | |
| | | /** |
| | | * Returns PDO driver options array from DSN array (parse_dsn() result) |
| | | * Returns driver-specific connection options |
| | | * |
| | | * @param array $dsn DSN parameters |
| | | * |
| | | * @return array Connection options |
| | | */ |
| | | protected function dsn_options($dsn) |
| | | { |