我正在尝试使用Yii框架将最新记录放入mysql的链接中

时间:2014-01-16 12:39:18

标签: php yii

我正在获取最新记录,因此我可以将其保存到路径中。

 $currentid = Yii::app()->db->createCommand("select id from content where id = (select max(id) from content)")->queryRow();
 Yii::app()->session['announcement_message'] = 'You have successfully created an announcement.';
 $url = Yii::app()->createAbsoluteUrl('announcement/view/id/'.  $currentid);
 $this->emailAll($url);

这会传递到我的电子邮件功能:

public function emailAll($url)
{
    $this->set_mail_settings();
    $message = new YiiMailMessage;        
    $emails = Yii::app()->db->createCommand("SELECT group_concat(email) as em FROM persons WHERE party_id != 184")->queryRow();
    $email_ids = explode(",",$emails["em"]);
    $message->setBcc($email_ids);
    $message->setBody('To view, click here: '.$url);
    $message->subject = 'New Announcement Posted!';
    $message->addTo('no-one@nowhere.com');
    $message->from = Yii::app()->params['adminEmail'];
    Yii::app()->mail->send($message);                      
}

但是当我收到电子邮件链接时,它没有给我最后一条记录的id#,而是给了我“数组”

通知/视图/ ID /阵列。

我需要它是确切的身份证号码。

3 个答案:

答案 0 :(得分:1)

试试这个。 Queryrow始终返回数组。所以你必须使用如下。

$url = Yii::app()->createAbsoluteUrl('announcement/view/id/'.  $currentid["id"]);

答案 1 :(得分:0)

如果您只需要第一行的第一个值,那么只需使用“->queryScalar()”。少麻烦:))

答案 2 :(得分:0)

您可以订购您的sql语句,然后选择1.它应该比执行子查询更快。

 $currentid = Yii::app()->db
              ->createCommand("select id from content ORDER BY id DESC LIMIT 1")
              ->queryRow();