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

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

Barbara Streisand
发布: 2024-10-22 10:57:03
原创
269 人浏览过

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中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板