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

namespace goDBImplementations;

/**
 * The adapter for php_mysqli
 *
 * @author Oleg Grigoriev <go.vasac@gmail.com>
 */
final class Mysql extends Base
{
    
/**
     * {@inheritdoc}
     */
    
public function connect(array $params, &$errorInfo null, &$errorCode null)
    {
        
$host explode(':'$params['host'], 2);
        if (!empty(
$host[1])) {
            
$port $host[1];
        } else {
            
$port $params['port'];
        }
        
$host $host[0];
        
$user $params['username'];
        
$password $params['password'];
        
$dbname $params['dbname'];
        
$socket $params['socket'];
        
$connection = @(new mysqli($host$user$password$dbname$port$socket));
        if (
$connection->connect_error) {
            
$errorInfo $connection->connect_error;
            
$errorCode $connection->connect_errno;
            return 
false;
        }
        if (
$params['charset']) {
            if (!
$connection->set_charset($params['charset'])) {
                
$errorInfo $connection->error;
                
$errorCode $connection->errno;
                
$connection->close();
                return 
false;
            }
        }
        return 
$connection;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
/**
     * {@inheritdoc}
     */
    
protected $paramsDefault = array(
        
'host' => 'localhost',
        
'dbname' => null,
        
'charset' => null,
        
'port' => null,
        
'socket' => null,
    );

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

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

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