Вход Регистрация
Файл: 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;
}
Онлайн: 0
Реклама