Вход Регистрация
Файл: sys/library/goDB/Implementations/Sqlite.php
Строк: 179
<?php
/**
 * @package goDB
 */

namespace goDBImplementations;

/**
 * The adapter for php_sqlite3
 *
 * @author Oleg Grigoriev <go.vasac@gmail.com>
 */
final class Sqlite extends Base
{
    
/**
     * {@inheritdoc}
     */
    
public function connect(array $params, &$errorInfo null, &$errorCode null)
    {
        
$flags is_null($params['flags']) ? (SQLITE3_OPEN_CREATE SQLITE3_OPEN_READWRITE) : $params['flags'];
        try {
            
$connection = new SQLite3($params['filename'], $flags$params['encryption_key']);
        } catch (
Exception $e) {
            
$errorInfo $e->getMessage();
            
$errorCode $e->getCode();
            return 
false;
        }
        return 
$connection;
    }

    
/**
     * {@inheritdoc}
     */
    
public function close($connection)
    {
        return 
$connection->close();
    }

    
/**
     * {@inheritdoc}
     */
    
public function query($connection$query)
    {
        return @
$connection->query($query);
    }

    
/**
     * {@inheritdoc}
     */
    
public function getInsertId($connection$cursor null)
    {
        return 
$connection->lastInsertRowID();
    }

    
/**
     * {@inheritdoc}
     */
    
public function getAffectedRows($connection$cursor null)
    {
        return 
$connection->changes();
    }

    
/**
     * {@inheritdoc}
     */
    
public function getErrorInfo($connection$cursor null)
    {
        return 
$connection->lastErrorMsg();
    }

    
/**
     * {@inheritdoc}
     */
    
public function getErrorCode($connection$cursor null)
    {
        return 
$connection->lastErrorCode();
    }

    
/**
     * {@inheritdoc}
     */
    
public function getNumRows($connection$cursor)
    {
        return 
0;
    }

    
/**
     * {@inheritdoc}
     */
    
public function fetchRow($connection$cursor)
    {
        return 
$cursor->fetchArray(SQLITE3_NUM);
    }

    
/**
     * {@inheritdoc}
     */
    
public function fetchAssoc($connection$cursor)
    {
        return 
$cursor->fetchArray(SQLITE3_ASSOC);
    }

    
/**
     * {@inheritdoc}
     */
    
public function freeCursor($connection$cursor)
    {
        return @
$cursor->finalize(); // @todo fix (The SQLite3Result object has not been correctly initialised)
    
}

    
/**
     * {@inheritdoc}
     */
    
public function escapeString($connection$value)
    {
        return 
$connection->escapeString($value);
    }

    
/**
     * {@inheritdoc}
     */
    
public function reprString($connection$value)
    {
        return 
"'".$this->escapeString($connection$value)."'";
    }

    
/**
     * {@inheritdoc}
     */
    
protected function reprField($connection$value)
    {
        return 
'"'.str_replace('"''""'$value).'"';
    }

    
/**
     * {@inheritdoc}
     */
    
public function rewindCursor($connection$cursor)
    {
        return 
$cursor->reset();
    }

    
/**
     * {@inheritdoc}
     */
    
protected $paramsReq = array();

    
/**
     * {@inheritdoc}
     */
    
protected $paramsDefault = array(
        
'filename' => ':memory:',
        
'flags' => null,
        
'encryption_key' => null,
        
'mysql_quot' => false,
    );

    
/**
     * {@inheritdoc}
     */
    
protected $depsPhpExts 'sqlite3';

    
/**
     * @var string
     */
    
private $errorInfo;

    
/**
     * @var int
     */
    
private $errorCode;
}
Онлайн: 1
Реклама