diff --git a/lib/Cake/Model/Datasource/Database/Connection.php b/lib/Cake/Model/Datasource/Database/Connection.php index 2f370f093fa..b5625abf8ae 100644 --- a/lib/Cake/Model/Datasource/Database/Connection.php +++ b/lib/Cake/Model/Datasource/Database/Connection.php @@ -118,7 +118,7 @@ public function execute($query, array $params = array(), array $types = array()) $this->_bindValues($statement, $params, $types); $result = $statement->execute(); } else { - $result = $this->query($query); + $statement = $this->query($query); } return $statement; } @@ -129,7 +129,10 @@ public function execute($query, array $params = array(), array $types = array()) * @return Cake\Model\Datasource\Database\Statement **/ public function query($sql) { - + $this->connect(); + $statement = $this->prepare($sql); + $statement->execute(); + return $statement; } /** diff --git a/lib/Cake/Test/TestCase/Model/Datasource/Database/ConnectionTest.php b/lib/Cake/Test/TestCase/Model/Datasource/Database/ConnectionTest.php index 4ba49f506eb..23d839aa037 100644 --- a/lib/Cake/Test/TestCase/Model/Datasource/Database/ConnectionTest.php +++ b/lib/Cake/Test/TestCase/Model/Datasource/Database/ConnectionTest.php @@ -153,5 +153,17 @@ public function testExecuteWithMissingType() { $statement = $this->connection->execute($sql, array(new \DateTime('2012-01-01')), array('bar')); } +/** + * Tests executing a qury with no params also works + * + * @return void + **/ + public function testExecuteWithNoParams() { + $sql = 'SELECT 1'; + $statement = $this->connection->execute($sql); + $result = $statement->fetch(); + $this->assertCount(1, $result); + $this->assertEquals(array(1), $result); + } }