mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Fixes for using dblib PDO driver.
These fixes allow *nix environments to connect to SQL Server using the dblib PDO driver and the silverstripe mssql module. - Only set MYSQL_ATTR_INIT_COMMAND when using the mysql driver, this constant isn't defined if the mysql pdo driver isn't installed - Supress warnings on getting the server version, attributes aren't supported by the dblib driver - Explicitly check for errors on sql exec, checking the return value isn't reliable for statements with no return value (e.g. USE database)
This commit is contained in:
parent
6808e88d9c
commit
6e2797ffc0
@ -156,9 +156,10 @@ class PDOConnector extends DBConnector {
|
||||
if(!isset($charset)) {
|
||||
$charset = $connCharset;
|
||||
}
|
||||
$options = array(
|
||||
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . $charset . ' COLLATE ' . $connCollation
|
||||
);
|
||||
$options = array();
|
||||
if($parameters['driver'] == 'mysql') {
|
||||
$options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES ' . $charset . ' COLLATE ' . $connCollation;
|
||||
}
|
||||
if(self::is_emulate_prepare()) {
|
||||
$options[PDO::ATTR_EMULATE_PREPARES] = true;
|
||||
}
|
||||
@ -178,7 +179,7 @@ class PDOConnector extends DBConnector {
|
||||
}
|
||||
|
||||
public function getVersion() {
|
||||
return $this->pdoConnection->getAttribute(PDO::ATTR_SERVER_VERSION);
|
||||
return @$this->pdoConnection->getAttribute(PDO::ATTR_SERVER_VERSION);
|
||||
}
|
||||
|
||||
public function escapeString($value) {
|
||||
@ -227,7 +228,7 @@ class PDOConnector extends DBConnector {
|
||||
$result = $this->pdoConnection->exec($sql);
|
||||
|
||||
// Check for errors
|
||||
if ($result !== false) {
|
||||
if (!$this->hasError($result)) {
|
||||
return $this->rowCount = $result;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user