Hallo.
Ich suche nach einem guten Weg, meine SQL-Queries um ein
Tabellen-Prefix zu erweitern.
Die Queries werden an das MySql-Objekt in folgender Form übergeben:
PHP-Code:
<?php
MySqlConnection::query(string $sQuery, array $aValues = null);
?>
Das Objekt escaped dann die Werte und substituiert die Platzhalter in der
Query via vsprintf().
Nun will ich eben ein Tabellen-
Präfix hinzufügen und hab natürlich wenig
Interesse, dieses in der Form von
PHP-Code:
<?php
$sQuery = "SELECT foo FROM {$this->Config->get('MySql', 'prefix')}table WHERE foo = '%s'";
?>
in die Queries einzubauen.
Mein spontaner Ansatz wäre, die Tabellennamen in geschweifte Klammern
oder so zu setzen und im MySql-Objekt via preg_replace() um das
Präfix
zu erweitern. Da ich aber nicht fit bin, was den Sprachumfang von SQL
angeht, wollte ich hier mal anfragen, ob sich geschweifte Klammern hierzu
eignen, oder ob das Konflikte geben kann. Wie gesagt, die Werte der
Query werden in dieser nicht mitübergeben. Dort stehen also nur
SQL-Ausdrücke, Tabellennamen, Aliase und Attribut-Bezeichner (...was
noch?).
Oder gib es andere bewährte Wege, das zu tun, vielleicht ohne auf
RegExps zugreifen zu müssen?
Basti