From b00257c6b00f66aa81f10bf3192e167741b0609e Mon Sep 17 00:00:00 2001 From: David Grudl Date: Tue, 13 Oct 2009 17:02:26 +0200 Subject: [PATCH] Updated DibiFirebirdDriver & DibiMsSql2005Driver --- dibi/drivers/firebird.php | 2 +- dibi/drivers/mssql2005.php | 18 ++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/dibi/drivers/firebird.php b/dibi/drivers/firebird.php index 0e55f1b1..4c3e285e 100644 --- a/dibi/drivers/firebird.php +++ b/dibi/drivers/firebird.php @@ -333,7 +333,7 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver public function fetch($assoc) { DibiDriverException::tryError(); - $result = $assoc ? ibase_fetch_assoc($this->resultSet) : ibase_fetch_row($this->resultSet); // intentionally @ + $result = $assoc ? ibase_fetch_assoc($this->resultSet, IBASE_TEXT) : ibase_fetch_row($this->resultSet, IBASE_TEXT); // intentionally @ if (DibiDriverException::catchError($msg)) { if (ibase_errcode() == self::ERROR_EXCEPTION_THROWN) { diff --git a/dibi/drivers/mssql2005.php b/dibi/drivers/mssql2005.php index b19163e3..ecce70c0 100644 --- a/dibi/drivers/mssql2005.php +++ b/dibi/drivers/mssql2005.php @@ -40,9 +40,6 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver /** @var resource Resultset resource */ private $resultSet; - /** @var string character encoding */ - private $charset; - /** @@ -66,8 +63,10 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver { if (isset($config['resource'])) { $this->connection = $config['resource']; + } elseif (isset($config['options'])) { - $this->connection = sqlsrv_connect($config['host'], $config['options']); + $this->connection = sqlsrv_connect($config['host'], (array) $config['options']); + } else { $this->connection = sqlsrv_connect($config['host']); } @@ -76,8 +75,6 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver $info = sqlsrv_errors(); throw new DibiDriverException($info[0]['message'], $info[0]['code']); } - - $this->charset = empty($config['charset']) ? 'UTF-8' : $config['charset']; } @@ -101,7 +98,6 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver */ public function query($sql) { - $sql = iconv($this->charset, 'UTF-16LE', $sql); $this->resultSet = sqlsrv_query($this->connection, $sql); if ($this->resultSet === FALSE) { @@ -291,13 +287,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver */ public function fetch($assoc) { - $row = sqlsrv_fetch_array($this->resultSet, $assoc ? SQLSRV_FETCH_ASSOC : SQLSRV_FETCH_NUMERIC); - foreach ($row as $k => $v) { - if (is_string($v)) { - $row[$k] = iconv('UTF-16LE', $this->charset, $v); - } - } - return $row; + return sqlsrv_fetch_array($this->resultSet, $assoc ? SQLSRV_FETCH_ASSOC : SQLSRV_FETCH_NUMERIC); }