如何从数据库中获取记录并使用codeigniter将其发送到电子邮件?

时间:2016-03-16 07:53:18

标签: php mysql codeigniter

是否可以从数据库中获取记录并在电子邮件中发送该记录?。我能够从数据库接收数据但无法在电子邮件中发送该记录。我正在收到我的电子邮件ID的电子邮件,但它完全是$ pass [' pass']变量从数据库中检索记录。我能够使用print_r($ pass)在屏幕上显示记录并将此变量传递给email->消息($ pass)但是它不起作用。

请帮助我。

控制器

$emailTo = $this->input->post('email');

    $this->load->model('Model_login');
    $pass['pass']=$this->Model_login->forgot_pass_retrive($emailTo);


        $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'mail.demo.com',
        'smtp_port' => 25,
        'smtp_user' => 'noreply@demo.com', 
        'smtp_pass' => 'demo#@123', 
        'mailtype' => 'html',
        'charset' => 'iso-8859-1',
        'wordwrap' => TRUE
      );


           $this->load->library('email', $config);
           $this->email->set_newline("\r\n");  
           $this->email->from('noreply@demo.com'); 
           $this->email->to($emailTo);
           $this->email->subject('there');
           $this->email->message($pass);
         if($this->email->send())
         {


       redirect('Welcome/index');

         }
         else
         {
          show_error($this->email->print_debugger());
         }

模型

public function forgot_pass_retrive($emailTo)
   {

$this->db->select('password');
$this->db->from('admin_user');
$this->db->where('email',$emailTo);
$this->db->limit(1);

    $query=$this->db->get();
    if ($query->num_rows() == 1)
    {
    return $query->result();    
    }
    else
      {
      return FALSE;
   }

1 个答案:

答案 0 :(得分:6)

使用->row()获取单行

模型

$query=$this->db->get();
if ($query->num_rows() == 1)
{
$val = $query->row();
return $val->password;    
}

只需使用$pass来获取密码

CONTROLLER

$pass=$this->Model_login->forgot_pass_retrive($emailTo);

阅读https://www.codeigniter.com/userguide3/database/results.html