fawad
(Fawadg)
1
how would i write below querry in YII
function Get_Services($user_id, $isResultSet = true){
$sql = $this->select()
->setIntegrityCheck(false)
->from(array('p' => 'phone_service'))
->join(array('u' => 'user_preferences'), 'u.phone_service_id = p.phone_service_id')
->where('u.user_preferences_name = ?', 'is_user_package_active')
->where('p.user_id = ?', $user_id);
if($isResultSet){
return $sql->query()->fetchAll();
}else{
return $sql;
}
}
rookie84
(Lifeline Is)
2
Roughly:
$sql = Yii::app()->db->createCommand()
->from('phone_service p')
->join('user_preferences u', 'u.phone_service_id = p.phone_service_id')
->where('u.user_preferences_name = :upn', array(':upn' => 'is_user_package_active'))
->where('p.user_id = :uid', array(':uid' => $user_id)
->queryAll();
More details are here: http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder
l.jurgs
(L Jurgs)
3
You cannot call where() twice, it doesn’t append the next call to the query.
$sql = Yii::app()->db->createCommand()
->from('phone_service p')
->join('user_preferences u', 'u.phone_service_id = p.phone_service_id')
->where(array('AND', 'u.user_preferences_name = :upn', 'p.user_id = :uid')),
->queryAll(array(':upn' => 'is_user_package_active', ':uid' => $user_id));