Вход Регистрация
Файл: framework/model/queries/SQLDelete.php
Строк: 76
<?php

/**
 * Object representing a SQL DELETE query.
 * The various parts of the SQL query can be manipulated individually.
 *
 * @package framework
 * @subpackage model
 */
class SQLDelete extends SQLConditionalExpression {

    
/**
     * List of tables to limit the delete to, if multiple tables
     * are specified in the condition clause
     *
     * @see http://dev.mysql.com/doc/refman/5.0/en/delete.html
     *
     * @var array
     */
    
protected $delete = array();

    
/**
     * Construct a new SQLDelete.
     *
     * @param array|string $from An array of Tables (FROM clauses). The first one should be just the table name.
     * Each should be ANSI quoted.
     * @param array $where An array of WHERE clauses.
     * @param array|string $delete The table(s) to delete, if multiple tables are queried from
     * @return self Self reference
     */
    
public static function create($from = array(), $where = array(), $delete = array()) {
        return 
Injector::inst()->createWithArgs(__CLASS__func_get_args());
    }

    
/**
     * Construct a new SQLDelete.
     *
     * @param array|string $from An array of Tables (FROM clauses). The first one should be just the table name.
     * Each should be ANSI quoted.
     * @param array $where An array of WHERE clauses.
     * @param array|string $delete The table(s) to delete, if multiple tables are queried from
     */
    
function __construct($from = array(), $where = array(), $delete = array()) {
        
parent::__construct($from$where);
        
$this->setDelete($delete);
    }

    
/**
     * List of tables to limit the delete to, if multiple tables
     * are specified in the condition clause
     *
     * @return array
     */
    
public function getDelete() {
        return 
$this->delete;
    }

    
/**
     * Sets the list of tables to limit the delete to, if multiple tables
     * are specified in the condition clause
     *
     * @param string|array $tables Escaped SQL statement, usually an unquoted table name
     * @return self Self reference
     */
    
public function setDelete($tables) {
        
$this->delete = array();
        return 
$this->addDelete($tables);
    }

    
/**
     * Sets the list of tables to limit the delete to, if multiple tables
     * are specified in the condition clause
     *
     * @param string|array $tables Escaped SQL statement, usually an unquoted table name
     * @return self Self reference
     */
    
public function addDelete($tables) {
        if(
is_array($tables)) {
            
$this->delete array_merge($this->delete$tables);
        } elseif(!empty(
$tables)) {
            
$this->delete[str_replace(array('"','`'), ''$tables)] = $tables;
        }
    }
}
Онлайн: 0
Реклама