SQL-Statements in einer Tabelle speichern

SQL-Statements in einer Tabelle speichern

am 17.12.2004 19:20:46 von Ingolf Zimmer

Hallo zusammen,

ich hab mir überlegt meine Zahlreichen SQL-Statements in einer Tabelle zu
speichern.
Dazu habe ich mir auch unter MySQL in meiner Datenbank eine Tabelle
angelegt.

Nun sind aber in den SQL-Statements variable Elemente wie z.B. $tblName,
oder $idx_statement drin.

Beim Auslesen und Anzeigen eines Record wird dieser auch mittels echo exakt
so angezeit, wie er in der Tabelle steht. Es sollen allerdings die in dem
String befindlichen $Elemente durch die Kontanten ersetzt werden.
Bsp.: SELECT * FROM $tblUSER nach SELECT * FROM port_user

Hat jemand eine Idee wie ich das erreichen kann ?

MfG. Ingolf

Re: SQL-Statements in einer Tabelle speichern

am 17.12.2004 21:00:20 von Hartmut Holzgraefe

Ingolf Zimmer wrote:
> Beim Auslesen und Anzeigen eines Record wird dieser auch mittels echo exakt
> so angezeit, wie er in der Tabelle steht. Es sollen allerdings die in dem
> String befindlichen $Elemente durch die Kontanten ersetzt werden.
> Bsp.: SELECT * FROM $tblUSER nach SELECT * FROM port_user

http://php.net/eval

Re: SQL-Statements in einer Tabelle speichern

am 18.12.2004 02:57:04 von Stefan Scholl

On 2004-12-17 21:00:20, Hartmut Holzgraefe wrote:
> Ingolf Zimmer wrote:
>> Beim Auslesen und Anzeigen eines Record wird dieser auch mittels echo exakt
>> so angezeit, wie er in der Tabelle steht. Es sollen allerdings die in dem
>> String befindlichen $Elemente durch die Kontanten ersetzt werden.
>> Bsp.: SELECT * FROM $tblUSER nach SELECT * FROM port_user
>
> http://php.net/eval

Ich weiß nicht so recht. Die ganze Idee und Lösung kommt mir nicht
so geschickt vor.

Man muss viel beachten. Alle interpolierten Variablen müssen vorher
natürlich gesichert werden (Stichwort SQL-Injection). Damit ist
schon ein Vorteil verschwunden, weil man sich nun doch wieder
außerhalb der in der Tabelle gespeicherten Querys über deren Inhalt
und Funktionsweise Gedanken machen muss.

Re: SQL-Statements in einer Tabelle speichern

am 18.12.2004 12:39:20 von Weinzierl Stefan

Stefan Scholl wrote:
> On 2004-12-17 21:00:20, Hartmut Holzgraefe wrote:
>
>>Ingolf Zimmer wrote:
>>
>>>Beim Auslesen und Anzeigen eines Record wird dieser auch mittels echo exakt
>>>so angezeit, wie er in der Tabelle steht. Es sollen allerdings die in dem
>>>String befindlichen $Elemente durch die Kontanten ersetzt werden.
>>>Bsp.: SELECT * FROM $tblUSER nach SELECT * FROM port_user
>>
>>http://php.net/eval
>
>
> Ich weiß nicht so recht. Die ganze Idee und Lösung kommt mir nicht
> so geschickt vor.
>
> Man muss viel beachten. Alle interpolierten Variablen müssen vorher
> natürlich gesichert werden (Stichwort SQL-Injection). Damit ist
> schon ein Vorteil verschwunden, weil man sich nun doch wieder
> außerhalb der in der Tabelle gespeicherten Querys über deren Inhalt
> und Funktionsweise Gedanken machen muss.

Ich würde mit preg_replace_callback die Elemente raussuchen und dann die
Variableninhalte mit mysql_escape_string escapen und ersetzen.

Stefan

Re: SQL-Statements in einer Tabelle speichern

am 20.12.2004 10:52:51 von Knut Kohl

Hallo Ingolf,

Hartmut Holzgraefe schrieb am 17. Dec 2004 in
de.comp.lang.php.datenbanken:

> Ingolf Zimmer wrote:
>> Beim Auslesen und Anzeigen eines Record wird dieser auch mittels echo exakt
>> so angezeit, wie er in der Tabelle steht. Es sollen allerdings die in dem
>> String befindlichen $Elemente durch die Kontanten ersetzt werden.
>> Bsp.: SELECT * FROM $tblUSER nach SELECT * FROM port_user

> http://php.net/eval

wie wäre denn

SELECT * FROM %s nach SELECT * FROM port_user

in Kombination mit z.B. spintf()?

Regards,

Knut

--
Antworten bitte in die Newsgroup.

Newsoffice.de - Die Onlinesoftware zum Lesen und Schreiben im Usenet