Browse Source

Workaround for broken PDO::quote() in CUBRID 9.1.0

http://jira.cubrid.org/browse/APIS-658
tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
e996f3dfd5
  1. 13
      framework/yii/db/cubrid/Schema.php
  2. 8
      tests/unit/framework/db/cubrid/CubridConnectionTest.php

13
framework/yii/db/cubrid/Schema.php

@ -96,18 +96,17 @@ class Schema extends \yii\db\Schema
*/
public function quoteValue($str)
{
throw new NotSupportedException('quoteValue is currently broken in cubrid PDO');
// TODO implement workaround
/* if (!is_string($str)) {
if (!is_string($str)) {
return $str;
}
$this->db->open();
if (($value = $this->db->pdo->quote($str)) !== false) {
return $value;
} else { // the driver doesn't support quote (e.g. oci)
// workaround for broken PDO::quote() implementation in CUBRID 9.1.0 http://jira.cubrid.org/browse/APIS-658
if (version_compare($this->db->pdo->getAttribute(\PDO::ATTR_CLIENT_VERSION), '9.1.0', '<=')) {
return "'" . addcslashes(str_replace("'", "''", $str), "\000\n\r\\\032") . "'";
}*/
} else {
return $this->db->pdo->quote($str);
}
}
/**

8
tests/unit/framework/db/cubrid/CubridConnectionTest.php

@ -10,4 +10,12 @@ class CubridConnectionTest extends ConnectionTest
$this->driverName = 'cubrid';
parent::setUp();
}
public function testQuoteValue()
{
$connection = $this->getConnection(false);
$this->assertEquals(123, $connection->quoteValue(123));
$this->assertEquals("'string'", $connection->quoteValue('string'));
$this->assertEquals("'It''s interesting'", $connection->quoteValue("It's interesting"));
}
}

Loading…
Cancel
Save