Heim >Datenbank >MySQL-Tutorial >Warum löst mysqli_stmt::bind_param() den Fehler „Typdefinitionszeichenfolge stimmt nicht' aus?
mysqli_stmt::bind_param(): Type Definition String Mismatch
Beim Ausführen vorbereiteter Anweisungen mit mysqli_stmt::bind_param() ist es wichtig, dass Die Anzahl der Elemente in der Typdefinitionszeichenfolge entspricht der Anzahl der Bindevariablen. Diese Nichtübereinstimmung führt häufig zu der Fehlermeldung „Anzahl der Elemente in der Typdefinitionszeichenfolge stimmt nicht mit der Anzahl der Bindungsvariablen überein.“
Problembeschreibung
Die ursprüngliche Abfrage Dabei werden 65 Variablen mithilfe vorbereiteter Anweisungen in eine Datenbank eingefügt. Es besteht jedoch eine Diskrepanz zwischen der Anzahl der Variablen und der Anzahl der „s“-Zeichen in der Typdefinitionszeichenfolge.
Auflösung
Die Anzahl der Zeichen in der Die Typdefinitionszeichenfolge („s,s...“) muss der Anzahl der Bindevariablen in der Abfrage entsprechen. In diesem Fall gibt es 65 Bindungsvariablen, daher sollte die Typdefinitionszeichenfolge 65 „s“-Zeichen enthalten.
Beispiel
// Prepare query $query3 = '... (65 bind variables here) ...'; // Prepare statement $stmt = $dbConnection->prepare($query3); // Bind parameters $stmt->bind_param( "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", // 65 variables listed here ); // Execute query $stmt->execute();
In diesem Beispiel ist die Typdefinitionszeichenfolge enthält 65 „s“-Zeichen, entsprechend der Anzahl der Variablen in der Abfrage.
Gemeinsam Fallstricke
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWarum löst mysqli_stmt::bind_param() den Fehler „Typdefinitionszeichenfolge stimmt nicht' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!