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