Source for file sqlite3.dbconnection.php

Documentation is available at sqlite3.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-2012 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. require_once(dirname(__FILE__).'/sqlite3.dbresultset.php');
  12.  
  13. /**
  14.  *
  15.  * @package    jelix
  16.  * @subpackage db_driver
  17.  */
  18. class sqlite3DbConnection extends jDbConnection {
  19.  
  20.     function __construct($profile){
  21.         if (!class_exists('SQLite3')) {
  22.             throw new jException('jelix~db.error.nofunction','sqlite3');
  23.         }
  24.         parent::__construct($profile);
  25.         $this->dbms = 'sqlite';
  26.     }
  27.  
  28.     /**
  29.     * begin a transaction
  30.     */
  31.     public function beginTransaction (){
  32.         $this->_doExec ('BEGIN');
  33.     }
  34.  
  35.     /**
  36.     * Commit since the last begin
  37.     */
  38.     public function commit (){
  39.         $this->_doExec ('COMMIT');
  40.     }
  41.  
  42.     /**
  43.     * Rollback since the last BEGIN
  44.     */
  45.     public function rollback (){
  46.         $this->_doExec ('ROLLBACK');
  47.     }
  48.  
  49.     /**
  50.     *
  51.     */
  52.     public function prepare ($query){
  53.         throw new jException('jelix~db.error.feature.unsupported'array('sqlite','prepare'));
  54.     }
  55.  
  56.     public function errorInfo(){
  57.         return array($this->_connection->lastErrorCode()$this->_connection->lastErrorMsg());
  58.     }
  59.  
  60.     public function errorCode(){
  61.         return $this->_connection->lastErrorCode();
  62.     }
  63.  
  64.     protected function _connect (){
  65.         $db $this->profile['database'];
  66.         if (preg_match('/^(app|lib|var)\:/'$db))
  67.             $path str_replace(array('app:','lib:','var:')array(jApp::appPath()LIB_PATHjApp::varPath())$db);
  68.         else
  69.             $path jApp::varPath('db/sqlite3/'.$db);
  70.  
  71.         return new SQLite3($path);
  72.     }
  73.  
  74.     protected function _disconnect (){
  75.         return $this->_connection->close();
  76.     }
  77.  
  78.     protected function _doQuery($query){
  79.         if ($qI $this->_connection->query($query)) {
  80.             return new sqlite3DbResultSet($qI);
  81.         else {
  82.             throw new jException('jelix~db.error.query.bad'$this->_connection->lastErrorMsg().' ('.$query.')');
  83.         }
  84.     }
  85.  
  86.     protected function _doExec($query){
  87.         if ($qI $this->_connection->exec($query)){
  88.             return $this->_connection->changes();
  89.         else {
  90.             throw new jException('jelix~db.error.query.bad'$this->_connection->lastErrorMsg().' ('.$query.')');
  91.         }
  92.     }
  93.  
  94.     protected function _doLimitQuery ($queryString$offset$number){
  95.         $queryString.= ' LIMIT '.$offset.','.$number;
  96.         $this->lastQuery = $queryString;
  97.         $result $this->_doQuery($queryString);
  98.         return $result;
  99.     }
  100.  
  101.     public function lastInsertId($fromSequence=''{
  102.         return $this->_connection->lastInsertRowID();
  103.     }
  104.  
  105.     /**
  106.     * tell sqlite to be autocommit or not
  107.     * @param boolean $state the state of the autocommit value
  108.     * @return void 
  109.     */
  110.     protected function _autoCommitNotify ($state){
  111.         $this->query ('SET AUTOCOMMIT='.$state '1' '0');
  112.     }
  113.  
  114.     /**
  115.     * @return string the text with non ascii char and quotes escaped
  116.     */
  117.     protected function _quote($text$binary{
  118.         return $this->_connection->escapeString($text);
  119.     }
  120.  
  121.  
  122.     /**
  123.      *
  124.      * @param integer $id the attribut id
  125.      * @return string the attribute value
  126.      * @see PDO::getAttribute()
  127.      */
  128.     public function getAttribute($id{
  129.         switch($id{
  130.             case self::ATTR_CLIENT_VERSION:
  131.             case self::ATTR_SERVER_VERSION:
  132.                 $v SQLite3::version();
  133.                 return $v['versionString'];
  134.         }
  135.         return "";
  136.     }
  137.  
  138.     /**
  139.      * 
  140.      * @param integer $id the attribut id
  141.      * @param string $value the attribute value
  142.      * @see PDO::setAttribute()
  143.      */
  144.     public function setAttribute($id$value{
  145.     }
  146.  
  147. }

Documentation generated on Wed, 04 Jan 2017 22:59:11 +0100 by phpDocumentor 1.4.3