在您提供的代码片段中,您遇到的警告源于之间的不匹配bind_param() 方法中的变量数量和准备好的语句中的参数数量。要解决此问题,确保这两个数字对齐至关重要。
您最初使用的准备好的语句:
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = '?' ORDER by model");
包含错误。 make 参数的占位符错误地用引号 ('?') 括起来。在准备好的语句中,占位符应该用不带引号的问号表示。
更正后的准备好的语句:
$stmt = $mysqli->prepare(" SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model ");
现在有两个占位符,与 bind_param() 方法中的两个变量匹配:
$stmt->bind_param('is', $year, $make);
通过消除 make 占位符周围的不正确引号,您可以对齐变量和参数的数量,解决不匹配错误。
以上是如何解决准备语句中绑定参数编号不匹配的问题?的详细内容。更多信息请关注PHP中文网其他相关文章!