Browse Source

Fixing issue with integer columns and NULL values.
Fixes #2037

mark_story 14 years ago
parent
commit
a3f25ee5e3

+ 1 - 1
lib/Cake/Model/Datasource/DboSource.php

@@ -2443,7 +2443,7 @@ class DboSource extends DataSource {
 				break;
 			}
 			$value = "({$value})";
-		} elseif ($null) {
+		} elseif ($null || $value === 'NULL') {
 			switch ($operator) {
 				case '=':
 					$operator = 'IS';

+ 6 - 1
lib/Cake/Test/Case/Model/Datasource/Database/MysqlTest.php

@@ -2219,10 +2219,15 @@ class MysqlTest extends CakeTestCase {
 		$expected = " WHERE `Book`.`id` = 0";
 		$this->assertEqual($expected, $result);
 
-		$result = $this->Dbo->conditions(array("Book.id" => NULL));
+		$result = $this->Dbo->conditions(array("Book.id" => null));
 		$expected = " WHERE `Book`.`id` IS NULL";
 		$this->assertEqual($expected, $result);
 
+		$conditions = array('MysqlModel.id' => '');
+		$result = $this->Dbo->conditions($conditions, true, true, $this->model);
+		$expected = " WHERE `MysqlModel`.`id` IS NULL";
+		$this->assertEqual($result, $expected);
+
 		$result = $this->Dbo->conditions(array('Listing.beds >=' => 0));
 		$expected = " WHERE `Listing`.`beds` >= 0";
 		$this->assertEqual($expected, $result);