Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 20 |
Delete | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
30 | |
0.00% |
0 / 20 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
execute | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
|||
__toString | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 8 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Database\Query\Delete. | |
*/ | |
namespace Drupal\Core\Database\Query; | |
use Drupal\Core\Database\Database; | |
use Drupal\Core\Database\Connection; | |
/** | |
* General class for an abstracted DELETE operation. | |
* | |
* @ingroup database | |
*/ | |
class Delete extends Query implements ConditionInterface { | |
use QueryConditionTrait; | |
/** | |
* The table from which to delete. | |
* | |
* @var string | |
*/ | |
protected $table; | |
/** | |
* Constructs a Delete object. | |
* | |
* @param \Drupal\Core\Database\Connection $connection | |
* A Connection object. | |
* @param string $table | |
* Name of the table to associate with this query. | |
* @param array $options | |
* Array of database options. | |
*/ | |
public function __construct(Connection $connection, $table, array $options = array()) { | |
$options['return'] = Database::RETURN_AFFECTED; | |
parent::__construct($connection, $options); | |
$this->table = $table; | |
$this->condition = new Condition('AND'); | |
} | |
/** | |
* Executes the DELETE query. | |
* | |
* @return int | |
* The number of rows affected by the delete query. | |
*/ | |
public function execute() { | |
$values = array(); | |
if (count($this->condition)) { | |
$this->condition->compile($this->connection, $this); | |
$values = $this->condition->arguments(); | |
} | |
return $this->connection->query((string) $this, $values, $this->queryOptions); | |
} | |
/** | |
* Implements PHP magic __toString method to convert the query to a string. | |
* | |
* @return string | |
* The prepared statement. | |
*/ | |
public function __toString() { | |
// Create a sanitized comment string to prepend to the query. | |
$comments = $this->connection->makeComment($this->comments); | |
$query = $comments . 'DELETE FROM {' . $this->connection->escapeTable($this->table) . '} '; | |
if (count($this->condition)) { | |
$this->condition->compile($this->connection, $this); | |
$query .= "\nWHERE " . $this->condition; | |
} | |
return $query; | |
} | |
} |