Sven Rautenberg: Datenbenkverbindung mit mysqli-Extension

Beitrag lesen

Moin!

$kommando->bind_param('ss', 'Horst Lichter', 'Köln');

Bringt ein => "Fatal error: Cannot pass parameter 2 by reference in /kunden/123456_1234/webseiten/dbtest002.php on line 20" Das wäre die Zeile "$kommando->bind_param('ss', 'Horst Lichter', 'Köln');"

Was übersehe ich?

Du *musst* Variablen als Parameter an das Statement "binden" - direkt skalare Werte anzugeben, ist nicht moeglich.

Weil es auch unsinnig wäre, statische Werte als Prepared Statement dynamisch an das Statement zu binden. Sowas fügt man direkt in den Query ein.

Wenn du wirklich die Werte 'Horst Lichter' und 'Köln' im Script vorliegen haben willst, dann muesstest du sie trotzdem vorher in Variablen "stecken", und diese beim binden angeben.

Alternativ einen statischen Query durchführen mit $db->query(). Prepared Statements sind zwar auch nett, aber nicht der 100%-Ersatz für das alte mysql_query, sondern für die Fälle geeignet, bei denen man eben Prepared Statements verwenden möchte. Das Escaping dabei aber nicht vergessen, wenn mysqli_query() verwendet wird!

- Sven Rautenberg