Source for file sqlite.dbconnection.php

Documentation is available at sqlite.dbconnection.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage db_driver
  5. @author     Loic Mathaud
  6. @contributor Laurent Jouanneau
  7. @copyright  2006 Loic Mathaud, 2007-2010 Laurent Jouanneau
  8. @link      http://www.jelix.org
  9. @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  10. */
  11.  
  12. /**
  13.  *
  14.  * @package    jelix
  15.  * @subpackage db_driver
  16.  */
  17. class sqliteDbConnection extends jDbConnection {
  18.  
  19.     function __construct($profile){
  20.         if(!function_exists('sqlite_open')){
  21.             throw new jException('jelix~db.error.nofunction','sqlite');
  22.         }
  23.         parent::__construct($profile);
  24.     }
  25.  
  26.     /**
  27.     * begin a transaction
  28.     */
  29.     public function beginTransaction (){
  30.         $this->_doExec ('BEGIN');
  31.     }
  32.  
  33.     /**
  34.     * Commit since the last begin
  35.     */
  36.     public function commit (){
  37.         $this->_doExec ('COMMIT');
  38.     }
  39.  
  40.     /**
  41.     * Rollback since the last BEGIN
  42.     */
  43.     public function rollback (){
  44.         $this->_doExec ('ROLLBACK');
  45.     }
  46.  
  47.     /**
  48.     *
  49.     */
  50.     public function prepare ($query){
  51.         throw new jException('jelix~db.error.feature.unsupported'array('sqlite','prepare'));
  52.     }
  53.  
  54.     public function errorInfo(){
  55.         return array(sqlite_last_error($this->_connection)sqlite_error_string($this->_connection));
  56.     }
  57.  
  58.     public function errorCode(){
  59.         return sqlite_last_error($this->_connection);
  60.     }
  61.  
  62.     protected function _connect (){
  63.         $funcconnect(isset($this->profile['persistent']&& $this->profile['persistent']'sqlite_popen':'sqlite_open');
  64.         if ($cnx @$funcconnect(JELIX_APP_VAR_PATH'db/sqlite/'.$this->profile['database'])) {
  65.             return $cnx;
  66.         else {
  67.             throw new jException('jelix~db.error.connection',$this->profile['database']);
  68.         }
  69.     }
  70.  
  71.     protected function _disconnect (){
  72.         return sqlite_close($this->_connection);
  73.     }
  74.  
  75.     protected function _doQuery($query){
  76.         if ($qI sqlite_query($query$this->_connection)){
  77.             return new sqliteDbResultSet($qI);
  78.         else {
  79.             throw new jException('jelix~db.error.query.bad'sqlite_error_string($this->_connection).'('.$query.')');
  80.         }
  81.     }
  82.  
  83.     protected function _doExec($query){
  84.         if ($qI sqlite_query($query$this->_connection)){
  85.             return sqlite_changes($this->_connection);
  86.         else {
  87.             throw new jException('jelix~db.error.query.bad'sqlite_error_string($this->_connection).'('.$query.')');
  88.         }
  89.     }
  90.  
  91.     protected function _doLimitQuery ($queryString$offset$number){
  92.         $queryString.= ' LIMIT '.$offset.','.$number;
  93.         $result $this->_doQuery($queryString);
  94.         return $result;
  95.     }
  96.  
  97.     public function lastInsertId($fromSequence=''){// on n'a pas besoin de l'argument pour mysql
  98.         return sqlite_last_insert_rowid($this->_connection);
  99.     }
  100.  
  101.     /**
  102.     * tell mysql to be autocommit or not
  103.     * @param boolean state the state of the autocommit value
  104.     * @return void 
  105.     */
  106.     protected function _autoCommitNotify ($state){
  107.         $this->query ('SET AUTOCOMMIT='.$state '1' '0');
  108.     }
  109.  
  110.     /**
  111.     * @return string the text with non ascii char and quotes escaped
  112.     */
  113.     protected function _quote($text$binary{
  114.         return sqlite_escape_string($text);
  115.     }
  116.  
  117. }

Documentation generated on Thu, 22 Mar 2012 22:18:09 +0100 by phpDocumentor 1.4.3