Auge: Per Regex(?) Tabellennamen auf Gültigkeit prüfen

Beitrag lesen

Hallo

Ich habe für ein PHP-Skript eine Installationsroutine erstellt. Dort sollen Angaben, wie Datenbankname, Passwort, die Namen der Tabellen sowie einige andere Dinge eingegeben werden. Daraufhin werden die Tabellen erstellt und einige andere Angaben in einer "settings.php" abgespeichert.

Nun bin ich dabei die Prüfung, ob die vom Formular übergebenen Werte gültig sind, zu programmieren. Ich habe mir Angaben zu Namenskonventionen für SQL-Datenbanken rausgesucht.

<zitat>

Datenbanknamen dürfen aus Buchstaben, Ziffern (nicht am Anfang) und der Zeichenmenge = {@, #, _, $} bestehen, keine Leer- und max. 18 Zeichen (enthalten).

</zitat>

Die gleichen Konventionen gelten nach den Angaben auf dieser Seite für Tabellen. Nun sind einerseits diese Angaben allgemein auf SQL Datenbanken bezogen, was mich fragen lässt, ob dies so explizit auch für MySQL gilt. Außerdem stellt sich mir die Frage, wie ich den vom Formular übergebenen Wert mit einem regulären Ausdruck zu fassen kriege oder ob ich die Prüfung besser auf anderem Weg vornehme. Der Name kann ja sonstwie aussehen. Er scheint mit einem Buchstaben beginnen zu müssen. Wo dann aber die anderen Zeichen stehen, steht in den Sternen. Wie _ich_ einen Tabellennamen aufbaue, weiß ich, was ein anderer Benutzer des Skriptes bei der Eingabe der Namen tut, weiß ich nicht.

Für mich einfacher wäre es, jede Eingabe zuzulassen, mit mysql_escape_string zu behandeln, und den Anwender im Fehlerfall mit der Fehlermeldung des DB-Servers zu konfrontieren, eigentlich aber "allein zu lassen". Das kann es meiner Meinung nach aber auch nicht sein.

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)