gpt4 book ai didi

yii - 参数化 DeleteAllByAttributes 在 YII 中不起作用

转载 作者:行者123 更新时间:2023-12-04 03:31:36 26 4
gpt4 key购买 nike

我正在使用以下代码:

MyClass::model()->deleteAllByAttributes(array('phone_number'=>':phone_number'), '', array(':phone_number'=>$phoneNumber));

我收到以下错误:
CDbException
SQLSTATE[HY093]: Invalid parameter number: number of bound variables
does not match number of tokens. The SQL statement executed was:
DELETE FROM `my_class` WHERE `my_class`.`phone_number`=:yp0
(E:\xampp\htdocs\yii\db\CDbCommand.php:354)

最佳答案

我相信你不需要绑定(bind)attributes中的属性数组(如 findAllByAttributes() 中一样)。 params 中的值数组绑定(bind)到 condition 中的值字符串,而不是 attributes数组,所以我相信以下内容应该对您有用(并经过 sanitizer ):

MyClass::model()->deleteAllByAttributes(array(
'phone_number'=>$phoneNumber,
));

或者,您可以使用:
MyClass::model()->deleteAllByAttributes(array(),'`phone_number` = :phone_number',array(
':phone_number'=>$phoneNumber,
));

哪个会产生相同的效果...但是您不妨使用 deleteAll() :
MyClass::model()->deleteAll('`phone_number` = :phone_number',array(
':phone_number'=>$phoneNumber,
));

关于yii - 参数化 DeleteAllByAttributes 在 YII 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com