From faa2eec3b9862f5d228c363c27509905fa33e711 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 17 Feb 2012 08:47:06 -0600 Subject: [PATCH] consolidate database methods into db::query. --- laravel/database/connection.php | 59 +++++++++------------------------ laravel/database/query.php | 8 ++--- laravel/database/schema.php | 2 +- 3 files changed, 21 insertions(+), 48 deletions(-) diff --git a/laravel/database/connection.php b/laravel/database/connection.php index 9e6b5323..cb144fb5 100644 --- a/laravel/database/connection.php +++ b/laravel/database/connection.php @@ -140,49 +140,22 @@ public function query($sql, $bindings = array()) { list($statement, $result) = $this->execute($sql, $bindings); - return $statement->fetchAll(PDO::FETCH_CLASS, 'stdClass'); - } - - /** - * Execute a SQL UPDATE query and return the affected row count. - * - * @param string $sql - * @param array $bindings - * @return int - */ - public function update($sql, $bindings = array()) - { - list($statement, $result) = $this->execute($sql, $bindings); - - return $statement->rowCount(); - } - - /** - * Execute a SQL DELETE query and return the affected row count. - * - * @param string $sql - * @param array $bindings - * @return int - */ - public function delete($sql, $bindings = array()) - { - list($statement, $result) = $this->execute($sql, $bindings); - - return $statement->rowCount(); - } - - /** - * Execute an SQL query and return the boolean result of the PDO statement. - * - * @param string $sql - * @param array $bindings - * @return bool - */ - public function statement($sql, $bindings = array()) - { - list($statement, $result) = $this->execute($sql, $bindings); - - return $result; + // The result we return depends on the type of query executed against the + // database. On SELECT clauses, we will return the result set, for update + // and deletes we will return the affected row count. And for all other + // queries we'll just return the boolean result. + if (stripos($sql, 'select') === 0) + { + return $statement->fetchAll(PDO::FETCH_CLASS, 'stdClass'); + } + elseif (stripos($sql, 'update') === 0 or stripos($sql, 'delete') === 0) + { + return $statement->rowCount(); + } + else + { + return $result; + } } /** diff --git a/laravel/database/query.php b/laravel/database/query.php index 8c0ef25d..d63704d4 100644 --- a/laravel/database/query.php +++ b/laravel/database/query.php @@ -717,7 +717,7 @@ public function insert($values) $sql = $this->grammar->insert($this, $values); - return $this->connection->statement($sql, $bindings); + return $this->connection->query($sql, $bindings); } /** @@ -731,7 +731,7 @@ public function insert_get_id($values, $sequence = null) { $sql = $this->grammar->insert($this, $values); - $this->connection->statement($sql, array_values($values)); + $this->connection->query($sql, array_values($values)); // Some database systems (Postgres) require a sequence name to be // given when retrieving the auto-incrementing ID, so we'll pass @@ -797,7 +797,7 @@ public function update($values) $sql = $this->grammar->update($this, $values); - return $this->connection->update($sql, $bindings); + return $this->connection->query($sql, $bindings); } /** @@ -820,7 +820,7 @@ public function delete($id = null) $sql = $this->grammar->delete($this); - return $this->connection->delete($sql, $this->bindings); + return $this->connection->query($sql, $this->bindings); } /** diff --git a/laravel/database/schema.php b/laravel/database/schema.php index 22e4dc74..2337a27d 100644 --- a/laravel/database/schema.php +++ b/laravel/database/schema.php @@ -89,7 +89,7 @@ public static function execute($table) // needs multiple queries to complete. foreach ((array) $statements as $statement) { - $connection->statement($statement); + $connection->query($statement); } } }