• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[MYSQLi] Prepared Statements, unbekannte Parameteranzahl

ZeitGeist

Lounge-Member
Moin,

gibt es eine Syntax mit der ich in der php mysqli-Erweiterung einem Prepared Statement eine unbekannte Anzahl an Paramtern übergeben kann?

Beispiel:
PHP:
$params = array(1, 4, 5, 12, 213);

$statement = $this->prepare('SELECT name FROM table WHERE id IN(?)');
$statement->bind_param('ARRAY_OF_INTS', $params);
$this ist ne mysqli-Klasse und die Query im Statement sollte dann so aussehen:
SELECT name FROM table WHERE id IN(1, 4, 5, 12, 213)


gruß
Carl
 
Wieso ist die Anzahl unbekannt? Wenn Du das Statement baust, dann weißt Du doch exakt, wie viele Parameter du brauchst.
Und genauso, wie Du die Übergabe der Parameter mittels Array dynamisch hältst, kannst Du doch auch das Statement mit der korrekten Anzahl Fragezeichen ausrüsten. Das Statement wird dadurch ja nicht unsicherer, weil Du die Anzahl der Parameter zur Laufzeit berücksichtigst, das Bind verhindert ja schon Injection-Angriffe, und diesen Zweck kann es nach wie vor erfüllen.
 
Die Anzahl der Fragezeichen kann ich ja noch dynamisch einfügen, wie aber sehe denn der Funktionsaufruf für bind_param mit einer erst zur Laufzeit bekannten Parameteranzahl aus?
 
Die Anzahl der Fragezeichen kann ich ja noch dynamisch einfügen, wie aber sehe denn der Funktionsaufruf für bind_param mit einer erst zur Laufzeit bekannten Parameteranzahl aus?
Vielleicht solltest Du dann auf PEAR umsteigen, da kann man einfach ein Array übergeben (So wie ich PEAR verstehe, wird dort das BIND aber nur simuliert).
 
Zurück
Oben