Heim >Datenbank >MySQL-Tutorial >Warum schlägt „mysqli_stmt::bind_param' fehl, wenn die Anzahl der Parameter und Platzhalter nicht übereinstimmt?
Ein häufiger Fehler bei der Verwendung von mysqli_stmt::bind_param ist die Nichtübereinstimmung zwischen der Anzahl der bereitgestellten Parameter und der Anzahl der Platzhalter (Fragezeichen) in der vorbereiteten SQL-Abfrage. So stellen Sie sicher, dass sie korrekt ausgerichtet sind:
Die Typdefinitionszeichenfolge in bind_param() besteht aus einer Zeichenfolge, die den Datentyp jedes Parameters darstellt. Jedes Zeichen in der Zeichenfolge muss einem einzelnen Platzhalter in der vorbereiteten Abfrage entsprechen. Zum Beispiel:
$stmt->bind_param("sss", $one, $two, $three);
Im obigen Beispiel enthält die Typdefinitionszeichenfolge „sss“ drei „s“-Zeichen, was angibt, dass die drei Parameter ($eins, $zwei, $drei) allesamt Zeichenfolgen sind. Die vorbereitete Abfrage muss dann drei Platzhalter enthalten, die dieser Definition entsprechen, etwa:
$stmt->prepare("INSERT INTO table (one, two, three) VALUES (?,?,?)");
Wenn die Anzahl der Zeichen in der Typdefinitionszeichenfolge nicht mit der Anzahl der Platzhalter in der Abfrage übereinstimmt, wird bind_param() generiert ein Fehler, der besagt, dass die Anzahl der Variablen nicht der Anzahl der Platzhalter entspricht.
Um eine ordnungsgemäße Ausführung sicherzustellen, überprüfen Sie immer, dass die Anzahl der Zeichen in der Typdefinitionszeichenfolge mit der Anzahl der Platzhalter übereinstimmt in der vorbereiteten Abfrage.
Das obige ist der detaillierte Inhalt vonWarum schlägt „mysqli_stmt::bind_param' fehl, wenn die Anzahl der Parameter und Platzhalter nicht übereinstimmt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!