Fixes #2967, Missing quotes cause SQL errors in some cases

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5816 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
phpnut 2007-10-20 11:45:09 +00:00
parent e750c9d38f
commit e1c26c9948
3 changed files with 16 additions and 5 deletions

View file

@ -223,7 +223,7 @@ class DboMysql extends DboSource {
case 'integer' :
case 'float' :
case null :
if (is_numeric($data) && strpos($data, ',') === false) {
if (is_int($data) || is_float($data) && strpos($data, ',') === false) {
break;
}
default:

View file

@ -209,7 +209,7 @@ class DboMysqli extends DboSource {
case 'integer' :
case 'float' :
case null :
if (is_numeric($data)) {
if (is_int($data) || is_float($data) && strpos($data, ',') === false) {
break;
}
default:

View file

@ -150,7 +150,6 @@ class DboMysqlTest extends UnitTestCase {
* @access public
*/
function testQuoting() {
$this->skipif ($this->Db->connected, 'Could not connect to database');
$result = $this->Db->fields($this->model);
$expected = array(
'`MysqlTestModel`.`id`',
@ -176,11 +175,23 @@ $this->skipif ($this->Db->connected, 'Could not connect to database');
$expected = 1.2;
$result = $this->Db->value(1.2, 'float');
$this->assertIdentical($expected, $result);
$this->assertEqual($expected, $result);
$expected = "'1,2'";
$result = $this->Db->value('1,2', 'float');
$this->assertIdentical($expected, $result);
$this->assertEqual($expected, $result);
$expected = "'4713e29446'";
$result = $this->Db->value('4713e29446');
$this->assertEqual($expected, $result);
$expected = 10010001;
$result = $this->Db->value(10010001);
$this->assertEqual($expected, $result);
$expected = "'00010010001'";
$result = $this->Db->value('00010010001');
$this->assertEqual($expected, $result);
}
}
?>