当绑定变量到我准备好的语句时,PHP报告参数的数量不匹配!
以下是代码:
private $q_setQueue = "update rivr_queues set name='?', description='?' where QueueID='?';";
.
.
.
$stmt = $astdb->prepare($this->q_setQueue);
$stmt->bind_param('sss',$qName,$qDesc,$qID);参数数是三个,所以我认为代码是正确的。
发布于 2015-06-19 07:39:59
您所得到的错误意味着您要传递给bind_param函数的变量数量与您准备好的查询中的占位符数量不匹配。
虽然在准备好的查询中有3个变量和3个“问号”(请继续阅读我为什么使用这个词而不是“占位符”)--注意,当您用单引号('')包装假设占位符时,它们将被视为实值而不是占位符。
因此,基本上,您有0占位符和3个变量->不匹配。删除单引号并更新查询:
private $q_setQueue = "update rivr_queues set name=?, description=? where QueueID=?;";应该能解决你的问题。
发布于 2015-06-19 07:08:24
$stmt->bind_param(1,$qName);
$stmt->bind_param(2,$qDesc);
$stmt->bind_param(3,$qID);省略每个问号?的单引号
https://stackoverflow.com/questions/30931948
复制相似问题