mysqli_stmt::bind_param(): 型定義文字列の不一致
mysqli_stmt::bind_param() を使用して準備されたステートメントを実行する場合、次のことが重要です。型定義文字列内の要素の数がバインドの数と一致する変数。この不一致により、多くの場合、「型定義文字列内の要素の数がバインド変数の数と一致しません。」というエラー メッセージが表示されます。
問題ステートメント
元のクエリこれには、準備されたステートメントを使用して 65 個の変数がデータベースに挿入されます。ただし、変数の数と型定義文字列の "s" の文字数の間には不一致があります。
解像度
文字列の文字数型定義文字列 ("s,s...") は、クエリ内のバインド変数の数と等しくなければなりません。この場合、65 個のバインド変数があるため、型定義文字列には 65 個の「s」文字が含まれている必要があります。
例
// 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();
この例では、型定義文字列には、変数の数と一致する 65 個の「s」文字が含まれています。 query.
一般的な落とし穴
追加の考慮事項
以上がmysqli_stmt::bind_param() が「型定義文字列の不一致」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。