Hallo leute,
ich brauche mal wieder eure Hilfe. Es geht um Folgendes. Ich möchte eine SQL Methode erstellen an die ich mein Query mit eventuellen Parametern überge. Die Anzahl der Parameter sollte dabei keine Rolle spielen. Zur Zeit mache ich das Ganze mit eval. Nur wie ihr bestimmt wisst ist eval = evil:D und man sollte es doch vermeiden. Das Ganze sieht zur Zeit so aus:
und die anwendung so:
PHP:
$db = new DataBase();
$query = "SELECT * FROM pages WHERE name = '%s' AND rights = '%s'";
foreach($db->sql($query,$this->scriptName,'0') as $test)
{
echo $test['id'];
}
das ganze funktioniert wunderbar nur das eval stört mich ganz schön. gibt es eine sicherere alternative? habe es mit call_user_func_array ausprobiert aber es hat leider nicht funktioniert. als meldung stand da dass sprintf zu viele parameter erhält das ganze sah so in etwa aus:
PHP:
$sql = call_user_func_array('sprintf',array($query,$parameterArray));
es hat nur funktioniert wenn ich es so gemacht habe
PHP:
$sql = call_user_func_array('sprintf',array($query,$parameterArray[0],$parameterArray[1],usw..));
jedoch ist es nicht das was ich wollte. also über anregungen würde ich mich freuen.
MFG