replaceClauses() public static method

Builds a query by rebuilding the statement from the tokens list supplied and replaces multiple clauses.
public static replaceClauses ( Statement $statement, TokensList $list, array $ops ) : string
$statement SqlParser\Statement The parsed query that has to be modified.
$list SqlParser\TokensList The list of tokens.
$ops array Clauses to be replaced. Contains multiple arrays having two values: array($old, $new). Clauses must be sorted.
return string
Example #1
0
 public function testReplaceClauses()
 {
     $this->assertEquals('', Query::replaceClauses(null, null, array()));
     $parser = new Parser('SELECT *, (SELECT 1) FROM film LIMIT 0, 10;');
     $this->assertEquals('SELECT *, (SELECT 1) FROM film WHERE film_id > 0 LIMIT 0, 10', Query::replaceClauses($parser->statements[0], $parser->list, array(array('WHERE', 'WHERE film_id > 0'))));
     $parser = new Parser('SELECT c.city_id, c.country_id ' . 'INTO OUTFILE "/dev/null" ' . 'FROM `city` ' . 'WHERE city_id < 1 ' . 'ORDER BY city_id ASC ' . 'LIMIT 0, 1 ');
     $this->assertEquals('SELECT c.city_id, c.country_id ' . 'INTO OUTFILE "/dev/null" ' . 'FROM city AS c   ' . 'ORDER BY city_id ASC ' . 'LIMIT 0, 10 ', Query::replaceClauses($parser->statements[0], $parser->list, array(array('FROM', 'FROM city AS c'), array('WHERE', ''), array('LIMIT', 'LIMIT 0, 10'))));
 }