diff --git a/src/Pixie/QueryBuilder/QueryBuilderHandler.php b/src/Pixie/QueryBuilder/QueryBuilderHandler.php index 134fba0..5183624 100644 --- a/src/Pixie/QueryBuilder/QueryBuilderHandler.php +++ b/src/Pixie/QueryBuilder/QueryBuilderHandler.php @@ -141,6 +141,7 @@ public function query($sql, $bindings = array()) public function statement($sql, $bindings = array()) { $start = microtime(true); + $pdoStatement = $this->pdo->prepare($sql); foreach ($bindings as $key => $value) { $pdoStatement->bindValue( @@ -169,8 +170,7 @@ public function get() if (is_null($this->pdoStatement)) { $queryObject = $this->getQuery('select'); list($this->pdoStatement, $executionTime) = $this->statement( - $queryObject->getSql(), - $queryObject->getBindings() + $queryObject->getRawSql() ); } @@ -1061,4 +1061,4 @@ public function getStatements() { return $this->statements; } -} +} \ No newline at end of file diff --git a/src/Pixie/QueryBuilder/QueryObject.php b/src/Pixie/QueryBuilder/QueryObject.php index 106070c..6d7b40b 100644 --- a/src/Pixie/QueryBuilder/QueryObject.php +++ b/src/Pixie/QueryBuilder/QueryObject.php @@ -70,6 +70,13 @@ protected function interpolateQuery($query, $params) # build a regular expression for each parameter foreach ($params as $key => $value) { + + if($value instanceof QueryBuilderHandler) { + $keys[] = '/[?]/'; + $values[$key] = '(' . $value->getQuery()->getRawSql() . ')'; + continue; + } + if (is_string($key)) { $keys[] = '/:' . $key . '/'; } else { @@ -93,4 +100,4 @@ protected function interpolateQuery($query, $params) return $query; } -} +} \ No newline at end of file