find()
即使有符合条件的行,也会返回NULL
。
查找代码段
$tempApp = Applicant::model()->find(array('condition'=>'phn=' . $app->phn . ' AND id<>' . $app->id));
if($tempApp != NULL) {
$archId = $this->archive($tempApp);
if($archId != NULL) {
$tempApp->phn = NULL;
$tempApp->save();
$app->note = 'Former name: ' . $tempApp->first_name . ' ' . $tempApp->middle_name . ' ' . $tempApp->last_name;
} else {
unset($archId);
}
}
注意:此代码在申请人第二次更新时有效。我很困惑为什么会这样。有人可以告诉我为什么会发生这种情况。
注意:我尝试了find()
可以使用的不同方式(即。find('phn=:phn AND id<>:id', array(':phn'=>$app->phn, ':id'=>$app->id));
由于
答案 0 :(得分:1)
使用count()而不是NULL
if(count($tempApp)) {
$archId = $this->archive($tempApp);
if(count($archId)) {
$tempApp->phn = NULL;
$tempApp->save();
$app->note = 'Former name: ' . $tempApp->first_name . ' ' . $tempApp->middle_name . ' ' . $tempApp->last_name;
} else {
unset($archId);
}
}
答案 1 :(得分:0)
尝试回显你的SQL语句并将其粘贴到phpmyadmin sql选项卡中,看看你是否得到了结果。
另外,我会尝试使用!empty()而不是NULL来表示我的if语句