如何解决准备语句中绑定参数编号不匹配的问题?

Patricia Arquette
发布: 2024-10-22 11:02:29
原创
806 人浏览过

How to Resolve Binding Parameter Number Mismatch in Prepared Statements?

“bind_param 变量数量与准备好的语句中的参数数量不匹配”

在您提供的代码片段中,您遇到的警告源于之间的不匹配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中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!