Die Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter

Loddar1

Erfahrenes Mitglied
Warnung: mysqli_stmt::bind_param():
Die Anzahl der Variablen stimmt nicht mit der Anzahl der Parameter
in der vorbereiteten Anweisung unter phpseite on line 70 überein.

Ich kann keinen Fehler entdecken, kann mir einer den Fehler sagen oder beschreiben?

PHP:
68. $sql = "SELECT id,name,text FROM tabelle WHERE ocat='0' AND block='0'";
69. $stmt = $mysqli->prepare($sql);
70. $stmt->bind_param('iss',$id,$name,$text);
71. $stmt->execute();
72. $result = $stmt->get_result();
73. while ($ol = $result->fetch_assoc()) {

Das Script funktioniert und zeigt auch alles richtig an,
nur die Meldung sagt das da ein Fehler ist den ich nicht sehe.

Besten Dank im vorraus Loddar1
 
Lösung
OK, habe es jetzt so geändert:
PHP:
$stmt = $mysqli->prepare("SELECT id,name,text FROM tabelle WHERE ocat=? AND block=?");
$stmt->bind_param("ii", $ocat,$block);
$stmt->execute();
$result = $stmt->get_result();
while ($ol = $result->fetch_assoc()) {
es funktioniert, wäre es denn so auch ok?
Ja das sollte so passen :)

Du kannst aber auch statt ? zum Beispiel:
PHP:
$stmt = $mysqli->prepare("SELECT id,name,text FROM tabelle WHERE ocat=:ocat AND block=:block");
$stmt->bind_param(":ocat", $ocat, PDO::PARAM_INT));
$stmt->bind_param(":block", $block, PDO::PARAM_STR));
$stmt->execute();
$result = $stmt->get_result();
while ($ol = $result->fetch_assoc()) {

Belese Dich mal zusätzlich noch hier: PHP: PDOStatement::bindParam -...
Danke für eure Geduld, habe es mir zu Herzen genommen vor allem hat Yaslaw mich gereizt
das er geschrieben hat "Aber du nutzt es nicht als Prepared Statement."
Das heisst, dass das was ich mache nicht richtig ist.
Jetzt gehe ich alles nochmal durch und setze es richtig um.
 
Zurück