首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli_stmt::bind_param变量数不匹配

mysqli_stmt::bind_param变量数不匹配
EN

Stack Overflow用户
提问于 2015-06-19 07:02:34
回答 2查看 622关注 0票数 1

当绑定变量到我准备好的语句时,PHP报告参数的数量不匹配!

以下是代码:

代码语言:javascript
复制
private $q_setQueue = "update rivr_queues set name='?', description='?' where QueueID='?';";
.
.
.
$stmt = $astdb->prepare($this->q_setQueue);
$stmt->bind_param('sss',$qName,$qDesc,$qID);

参数数是三个,所以我认为代码是正确的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 07:39:59

您所得到的错误意味着您要传递给bind_param函数的变量数量与您准备好的查询中的占位符数量不匹配。

虽然在准备好的查询中有3个变量和3个“问号”(请继续阅读我为什么使用这个词而不是“占位符”)--注意,当您用单引号('')包装假设占位符时,它们将被视为实值而不是占位符。

因此,基本上,您有0占位符和3个变量->不匹配。删除单引号并更新查询:

代码语言:javascript
复制
private $q_setQueue = "update rivr_queues set name=?, description=? where QueueID=?;";

应该能解决你的问题。

票数 2
EN

Stack Overflow用户

发布于 2015-06-19 07:08:24

代码语言:javascript
复制
$stmt->bind_param(1,$qName);
$stmt->bind_param(2,$qDesc);
$stmt->bind_param(3,$qID);

省略每个问号?的单引号

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30931948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档