quoteIdentifier() public method

.) to be used safely in queries without the risk of using reserved words.
public quoteIdentifier ( string $identifier ) : string
$identifier string The identifier to quote.
return string
Example #1
1
 /**
  * Tests identifier quoting
  *
  * @return void
  */
 public function testQuoteIdentifier()
 {
     $driver = $this->getMock('Cake\\Database\\Driver\\Sqlite', ['enabled']);
     $driver->expects($this->once())->method('enabled')->will($this->returnValue(true));
     $connection = new Connection(['driver' => $driver]);
     $result = $connection->quoteIdentifier('name');
     $expected = '"name"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Model.*');
     $expected = '"Model".*';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('MTD()');
     $expected = 'MTD()';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('(sm)');
     $expected = '(sm)';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('name AS x');
     $expected = '"name" AS "x"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Model.name AS x');
     $expected = '"Model"."name" AS "x"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Function(Something.foo)');
     $expected = 'Function("Something"."foo")';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Function(SubFunction(Something.foo))');
     $expected = 'Function(SubFunction("Something"."foo"))';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Function(Something.foo) AS x');
     $expected = 'Function("Something"."foo") AS "x"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('name-with-minus');
     $expected = '"name-with-minus"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('my-name');
     $expected = '"my-name"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Foo-Model.*');
     $expected = '"Foo-Model".*';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Team.P%');
     $expected = '"Team"."P%"';
     $this->assertEquals($expected, $result);
     $result = $connection->quoteIdentifier('Team.G/G');
     $expected = '"Team"."G/G"';
     $result = $connection->quoteIdentifier('Model.name as y');
     $expected = '"Model"."name" AS "y"';
     $this->assertEquals($expected, $result);
 }
Example #2
0
 /**
  * Returns list of ALTER TABLE statements to add foreign key constraints.
  *
  * @param  Connection $connection The connection to generate SQL for.
  * @return array List of SQL statements to create the foreign keys.
  */
 public function foreignKeysSql(Connection $connection)
 {
     $constraints = [];
     foreach ($this->_foreignKeysSql as $statement) {
         // TODO: Move this to the driver. SQLite is not supported.
         $constraints[] = sprintf('ALTER TABLE %s ADD %s', $connection->quoteIdentifier($this->name()), $statement);
     }
     return $constraints;
 }