Yii2 select2 数据库异常绑定变量数与令牌数不匹配
Posted
技术标签:
【中文标题】Yii2 select2 数据库异常绑定变量数与令牌数不匹配【英文标题】:Yii2 select2 database exception number of bound variables does not match number of tokens 【发布时间】:2021-03-09 08:12:21 【问题描述】:当我在我的 yii 2 应用程序中使用 select2 小部件时,会导致以下错误:
SQLSTATE [HY093]: Invalid parameter number: number of bound variables does not match number of tokens
The SQL being executed was: SELECT * FROM `page` WHERE `page`.`id`=6
执行的 sql 并没有在 Page 模型的 find 函数中应用我的覆盖,如下所示:
public static function find()
return parent::find()->where(['websiteId' => Yii::$app->website->id]);
调试堆栈提示我在第 333 行 ActiveRecord 中的 beforeInsert() 函数和此代码:
$this->node->refresh();
一切看起来都很好,那么有什么问题呢?
【问题讨论】:
【参考方案1】:我也遇到了同样的问题,好像是框架的bug! 只需找到 refresh() 函数并在 vendor/yiisoft/yii2/db/ActiveRecord.php 文件中更改以下行
$query->where($pk);
到
$query->andWhere($pk);
希望对您有所帮助,我渴望更好的解决方案。
【讨论】:
以上是关于Yii2 select2 数据库异常绑定变量数与令牌数不匹配的主要内容,如果未能解决你的问题,请参考以下文章
从 javascript 设置 yii2 select2 小部件的值
Yii2 - 使用 Ajax 加载为 Select2 插件设置值
Yii2 Kartik Select2 多个标签输入字符串错误