php yii 中的 findAll()
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/9736370/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
findAll() in yii
提问by User1988
EmailArchive Table:
电子邮件存档表:
id email_id to from
1 101 uk msm
2 102 uu avc
3 101 rk uk
4 103 xyz abc
5 104 xyz poi
6 104 abc xyz
7 101 xyz abc
Now in Yii I want record where email_id=101 I am using below code, but its not working.
现在在 Yii 中,我想记录我在下面的代码中使用的 email_id=101 的位置,但它不起作用。
$id =101;
$criteria = new CDbCriteria();
$criteria->addCondition("email_id < :email_id");
$comments = EmailArchive::model()->findAll($criteria, array(':email_id' => $id,));
回答by Sudhir Bastakoti
Try:
尝试:
$id =101;
$comments = EmailArchive::model()->findAll(
array("condition"=>"email_id = $id","order"=>"id"));
OR
或者
$id =101;
$criteria = new CDbCriteria();
$criteria->addCondition("email_id=:email_id");
$criteria->params = array(':email_id' => $id);
$comments = EmailArchive::model()->findAll($criteria);
OR
或者
$Criteria = new CDbCriteria();
$Criteria->condition = "email_id = $id";
$Products = Product::model()->findAll($Criteria);
回答by Arfeen
Just to add some alternate, you could do like this also:
只是添加一些替代品,您也可以这样做:
$id =101;
$criteria = new CDbCriteria();
$criteria->condition = "email_id =:email_id";
$criteria->params = array(':email_id' => $id);
$comments = EmailArchive::model()->findAll($criteria);
回答by Maharjan
If you use findAll()
, I recommend you to use this:
如果你使用findAll()
,我建议你使用这个:
$data_email = EmailArchive::model()->findAll(
array(
'condition' => 'email_id = :email_id',
'params' => array(':email_id' => $id)
)
);
回答by Elango Mani
Another simple way get by using findall in yii
在 yii 中使用 findall 的另一种简单方法
$id =101;
$comments = EmailArchive::model()->findAll(array("condition"=>"':email_id'=$id"));
foreach($comments as $comments_1)
{
echo "email:".$comments_1['email_id'];
}
回答by Marian Zburlea
This is your safest way to do it:
这是您最安全的方法:
$id =101;
//$user_id=25;
$criteria=new CDbCriteria;
$criteria->condition="email_id < :email_id";
//$criteria->addCondition("user_id=:user_id");
$criteria->params=array(
':email_id' => $id,
//':user_id' => $user_id,
);
$comments=EmailArchive::model()->findAll($criteria);
Note that if you comment out the commented lines you get a way to add more filtering to your search.
请注意,如果您注释掉注释行,您就可以为搜索添加更多过滤条件。
After this it is recommend to check if there is any data returned like:
在此之后,建议检查是否有任何数据返回,如:
if (isset($comments)) { // We found some comments, we can sleep well tonight
// do comments process or whatever
}
回答by Thu Ra
$id = 101;
$sql = 'SELECT * FROM ur_tbl t WHERE t.email_id = '. $id;
$email = Yii::app()->db->createCommand($sql)->queryAll();
var_dump($email);
回答by timber
if you user $criteria, I recommend blow usage:
如果您使用 $criteria,我建议您使用:
$criteria = new CDbCriteria();
$criteria->compare('email_id', 101);
$comments = EmailArchive::model()->findAll($criteria);
回答by Radhe9254
Use the below code. This should work.
使用下面的代码。这应该有效。
$comments = EmailArchive::find()->where(['email_id' => $id])->all();