gpt4 book ai didi

activerecord - 如何将 'IN (1,2,3)' 与 findAll 一起使用?

转载 作者:行者123 更新时间:2023-12-02 23:07:25 25 4
gpt4 key购买 nike

我需要从数据库中获取几个学生,并且他们的主键以逗号分隔的字符串形式存在。

通常使用 SQL 会是这样的:

$cleanedStudentIdStringList = "1,2,3,4";
SELECT * FROM Student WHERE id IN ($cleanedStudentIdStringList)

Yii 的 ActiveRecord 似乎在生成的 SQL 语句中的绑定(bind)参数周围插入单引号,这会导致使用参数绑定(bind)时查询失败。

这可行,但不使用安全参数绑定(bind)。

$students = Student::model()->findAll("id IN ({$_POST['studentIds']})");

有没有办法仍然使用参数绑定(bind)并在单个查询中仅获取几行?

最佳答案

你也可以这样做:

$criteria = new CDbCriteria();
$criteria->addInCondition("id", array(1,2,3,4));
$result = Student::model()->findAll($criteria);

并在数组中使用您需要的任何值。

阿列克西

关于activerecord - 如何将 'IN (1,2,3)' 与 findAll 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947593/

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