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));
谢谢
使用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);
}
}
尝试回显SQL语句并将其粘贴到phpmyadmin SQL选项卡中,看看是否得到结果。
此外,我会尝试使用!empty()而不是NULL对于我的if语句