I am trying to fetch result with where in condition
$email = 'test@gmail.com'; // This works
$email = 'test@gmail.com,test1@gmail.com'; // This fails
$users = User::model()->findAllByAttributes(array('email'=>array($email)));
print_r($users);
Where i am wrong.
That depends on what you want to achieve. If you want to look up all users with matching addresses, you may use explode
to convert comma separated list to array:
$emails = explode(',', $email);
$users = User::model()->findAllByAttributes(array('email'=>$emails));
Use addInCondition for such scenarios.
$emails = 'test@gmail.com,test1@gmail.com';
$emailsArray = explode(',', $emails);
$criteria = new CDbCriteria();
$criteria->addInCondition("email", $emailsArray);
$users = User::model()->findAll($criteria);
you can try this way...
$email1="xyz@gmail.com";
$email2="abc@gmail.com";
$users = User::model()->findAllByAttributes(array('email'=>array($email1,$email2)));
print_r($users);
if you want to check multiple emails then use CDbcriteria..
addInCondition() this is the best way...
for ex..
$email = 'test@gmail.com,test1@gmail.com';
$emails = explode(',',$email);
$criteria->addInCondition('email',$emails);
$user=User::model()->findAll(array($criteria)));
print_r($users);
didn't try this code practically but hope it may work/help you...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.