Таблица адресов электронной почты:
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
Теперь в Yii я хочу записать, где email_id = 101 Я использую код ниже, но он не работает.
$id =101; $criteria = new CDbCriteria(); $criteria->addCondition("email_id < :email_id"); $comments = EmailArchive::model()->findAll($criteria, array(':email_id' => $id,));
Пытаться:
$id =101; $comments = EmailArchive::model()->findAll( array("condition"=>"email_id = $id","order"=>"id"));
ИЛИ
$id =101; $criteria = new CDbCriteria(); $criteria->addCondition("email_id=:email_id"); $criteria->params = array(':email_id' => $id); $comments = EmailArchive::model()->findAll($criteria);
ИЛИ
$Criteria = new CDbCriteria(); $Criteria->condition = "email_id = $id"; $Products = Product::model()->findAll($Criteria);
Чтобы добавить альтернативу, вы также можете сделать это:
$id =101; $criteria = new CDbCriteria(); $criteria->condition = "email_id =:email_id"; $criteria->params = array(':email_id' => $id); $comments = EmailArchive::model()->findAll($criteria);
Если вы используете findAll()
, я рекомендую вам использовать это:
$data_email = EmailArchive::model()->findAll( array( 'condition' => 'email_id = :email_id', 'params' => array(':email_id' => $id) ) );
Еще один простой способ получить с помощью findall в yii
$id =101; $comments = EmailArchive::model()->findAll(array("condition"=>"':email_id'=$id")); foreach($comments as $comments_1) { echo "email:".$comments_1['email_id']; }
Это ваш самый безопасный способ сделать это:
$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);
Обратите внимание: если вы закомментируете прокомментированные строки, вы получите способ добавить дополнительную фильтрацию в свой поиск.
После этого рекомендуется проверить, есть ли какие-либо данные:
if (isset($comments)) { // We found some comments, we can sleep well tonight // do comments process or whatever }
$id = 101; $sql = 'SELECT * FROM ur_tbl t WHERE t.email_id = '. $id; $email = Yii::app()->db->createCommand($sql)->queryAll(); var_dump($email);
если вы используете критерии пользователя, я рекомендую использовать удар:
$criteria = new CDbCriteria(); $criteria->compare('email_id', 101); $comments = EmailArchive::model()->findAll($criteria);
Используйте приведенный ниже код. Это должно сработать.
$comments = EmailArchive::find()->where(['email_id' => $id])->all();