首页  >  文章  >  后端开发  >  为什么变量和参数不匹配会导致 mysqli 准备语句出错?

为什么变量和参数不匹配会导致 mysqli 准备语句出错?

Barbara Streisand
Barbara Streisand原创
2024-10-22 10:57:03172浏览

Why Did Mismatched Variables and Parameters Cause an Error in mysqli Prepared Statements?

mysqli: "变量数量与参数数量不匹配"

针对使用 mysqli 准备好的语句时遇到的问题,根本原因在于准备好的语句的语法不正确。正如回复中提到的,以下更正可以解决该问题:

$stmt = $mysqli->prepare(
    "SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model"
);
$stmt->bind_param('is', $year, $make);
$stmt->execute();

准备声明时,用问号将输入数据的占位符括起来至关重要。然而,在原始语句中,make 变量的占位符被括在引号内,使其无法被识别为占位符。因此,问号的数量与 bind_param() 中变量的数量不匹配。

因此,更正后的准备好的语句通过删除 ? 周围的引号消除了这种差异。占位符,它允许使用bind_param()正确绑定输入变量。这确保了语句可以成功执行,产生期望的结果。

以上是为什么变量和参数不匹配会导致 mysqli 准备语句出错?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn