PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP]: Wie Funktionsnamen mit eval() basteln?


mf_2
2007-09-17, 17:06:52
Hallo,
Wie kann ich mir einen Funktionsnamen in Abhängigkeit einer Variable basteln? Hier zur Veranschaulichung: $typ kann entweder "sybase" oder "mysql" lauten.
Dann soll entweder ein mysql_query oder ein sybase_query ausgeführt werden und ich will KEINE IF-Abfrage.
Ideal wäre sowas: $typ_query(bla); aber das funktioniert nicht. Nun wurde mir gesagt, dass es mit eval() gehen sollte, aber durch dessen Funktion steige ich nicht so durch. Das hier funktioniert nicht:
$sSource = $typ."_query";
eval("\$query_alle = \"$sSource($string$where$order,$link) or die (Fehlerhaftes Query beim Zugriff auf $db)\";");

Woran liegt das?
$link ist der Handle für die Datenbankverbindung
$string$where$order ist der QUERY-String, welcher auch korrekt dargestellt wird. Ich denke das "or die" macht Probleme.

Wisst ihr da weiter?

rotalever
2007-09-17, 18:05:08
Wofür soll das denn gut sein, und warum willst du kein "IF" verwenden? :(

HellHorse
2007-09-17, 18:54:11
Hat PHP noch immer keinen DB-Abstraktionslayer?

The_Invisible
2007-09-17, 20:40:56
sowas in der art?


<?php

$db_types = array("mysql_q", "sybase_q");

foreach($db_types as $db)
eval("function $db() { echo \"DB: \" . $db; }");

mysql_q();
//sybase_q();

?>


mfg

Tommes
2007-09-17, 20:52:37
Dafür gibt es doch fertige Datenbank-Klassen. Ich habe früher immer die von phplib benutzt.