123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- * Database query builder for DELETE statements. See [Query Builder](/database/query/builder) for usage and examples.
- *
- * @package Kohana/Database
- * @category Query
- * @author Kohana Team
- * @copyright (c) Kohana Team
- * @license https://koseven.ga/LICENSE.md
- */
- class Kohana_Database_Query_Builder_Delete extends Database_Query_Builder_Where {
- // DELETE FROM ...
- protected $_table;
- /**
- * Set the table for a delete.
- *
- * @param mixed $table table name or array($table, $alias) or object
- * @return void
- */
- public function __construct($table = NULL)
- {
- if ($table)
- {
- // Set the inital table name
- $this->_table = $table;
- }
- // Start the query with no SQL
- return parent::__construct(Database::DELETE, '');
- }
- /**
- * Sets the table to delete from.
- *
- * @param mixed $table table name or array($table, $alias) or object
- * @return $this
- */
- public function table($table)
- {
- $this->_table = $table;
- return $this;
- }
- /**
- * Compile the SQL query and return it.
- *
- * @param mixed $db Database instance or name of instance
- * @return string
- */
- public function compile($db = NULL)
- {
- if ( ! is_object($db))
- {
- // Get the database instance
- $db = Database::instance($db);
- }
- // Start a deletion query
- $query = 'DELETE FROM '.$db->quote_table($this->_table);
- if ( ! empty($this->_where))
- {
- // Add deletion conditions
- $query .= ' WHERE '.$this->_compile_conditions($db, $this->_where);
- }
- if ( ! empty($this->_order_by))
- {
- // Add sorting
- $query .= ' '.$this->_compile_order_by($db, $this->_order_by);
- }
- if ($this->_limit !== NULL)
- {
- // Add limiting
- $query .= ' LIMIT '.$this->_limit;
- }
- $this->_sql = $query;
- return parent::compile($db);
- }
- public function reset()
- {
- $this->_table = NULL;
- $this->_where = [];
- $this->_parameters = [];
- $this->_sql = NULL;
- return $this;
- }
- } // End Database_Query_Builder_Delete
|