From 3dbf59ece38aa196e56fb1546757cfe1e000b8da Mon Sep 17 00:00:00 2001 From: nate Date: Tue, 12 Jun 2007 15:13:53 +0000 Subject: [PATCH] Fixing substring quoting in DboSource::__quoteFields() git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5274 3807eeeb-6ff5-0310-8944-8be069107fe0 --- cake/libs/model/datasources/dbo_source.php | 3 +-- cake/tests/cases/libs/model/datasources/dbo_source.test.php | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cake/libs/model/datasources/dbo_source.php b/cake/libs/model/datasources/dbo_source.php index 1c45709ec..d657bfb84 100644 --- a/cake/libs/model/datasources/dbo_source.php +++ b/cake/libs/model/datasources/dbo_source.php @@ -1625,10 +1625,9 @@ class DboSource extends DataSource { for($i = 0; $i < $pregCount; $i++) { if(!empty($replace['1'][$i]) && !is_numeric($replace['1'][$i])) { - $conditions = preg_replace('/\b' . $replace['0'][$i] . '\b/', $this->name($replace['1'][$i]), $conditions); + $conditions = preg_replace('/\b' . preg_quote($replace['1'][$i]) . '\b/', $this->name($replace['1'][$i]), $conditions); } } - $conditions = rtrim($conditions); return $conditions; } return false; diff --git a/cake/tests/cases/libs/model/datasources/dbo_source.test.php b/cake/tests/cases/libs/model/datasources/dbo_source.test.php index 4f717daef..b8bf2ebcd 100644 --- a/cake/tests/cases/libs/model/datasources/dbo_source.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo_source.test.php @@ -1314,6 +1314,10 @@ class DboSourceTest extends UnitTestCase { } function testStringConditionsParsing() { + $result = $this->db->conditions("ProjectBid.project_id = Project.id"); + $expected = " WHERE `ProjectBid`.`project_id` = `Project`.`id`"; + $this->assertEqual($result, $expected); + $result = $this->db->conditions("Candy.name LIKE 'a' AND HardCandy.name LIKE 'c'"); $expected = " WHERE `Candy`.`name` LIKE 'a' AND `HardCandy`.`name` LIKE 'c'"; $this->assertEqual($result, $expected);