ZF2 - \ Zend \ Db \ Adapter \ Platform :: getQuoteIdentifierSymbol ()
Code ist wie folgt, wo ich Pdo_mysql verwenden möchte:
use \Zend\Db\Adapter\Adapter;
use \Zend\Db\Sql\Sql;
use \Zend\Db\Sql\Expression;
$params = array(
'driver' => "Pdo_mysql",
'host' => &$this->Registry->config[ 'sql' ][ 'host' ],
'username' => &$this->Registry->config[ 'sql' ][ 'user' ],
'password' => &$this->Registry->config[ 'sql' ][ 'passwd' ],
'dbname' => &$this->Registry->config[ 'sql' ][ 'dbname' ]
);
$this->adapter = new \Zend\Db\Adapter\Adapter( $params );
$this->platform = $this->adapter->getPlatform();
$this->sql = new Sql( $this->adapter );
Und wenn ich das Bezeichner-Anführungszeichen prüfe mit:
print $this->platform->getQuoteIdentifierSymbol(); // Output: "
Wie Sie sehen, ist das doppelte Anführungszeichen das Symbol. Dies macht natürlich alle meine MySQL-Abfragen ungültig, da alle Bezeichnernamen (Tabellen, Spalten usw.) in Anführungszeichen (") anstatt in Anführungszeichen (`) gesetzt werden.
Warum verwendet der PDO-MySQL-Treiber stattdessen das Sql92-Symbol? Und wie kann man das beheben?