2016-02-28 54 views
0

得到一个值我想从数据库中获取列的值“不”之后,我要寄这个值的用户,但我得到了一些错误..无法从数据库

这里这都是我为凑了模型和我写的邮件发送到控制器的用户功能的sendmail()的值写入查询..

型号:User_model

public function get_client_id() 
{ 

    $email = $this->input->post('email'); 
    $query = $this->db->query("SELECT no FROM users WHERE email = '$email' LIMIT 1"); 
    $result = $query->result_array(); 
    $value = mysql_fetch_object($result); 
    $_SESSION['myid'] = $value->no; 
} 

CONTRO米勒:Users.php

public function sendmail() 
    { 
     $config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.gmail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => '******', 
     'mailtype' => 'html', 
     'charset' => 'iso-8859-1', 
     'wordwrap' => TRUE 
     ); 

     $data = $this->user_model->get_client_id(); 

     $message = print($_SESSION['myid']); 


     $this->load->library('email', $config); 
     $this->email->from('[email protected]', 'Dhara Vihol'); 
     $this->email->to($_SESSION["email"]); 

     $this->email->subject('You have successfully signed up'); 
     $this->email->message($message); 


     if (! $this->email->send()) 
     { 
      echo "There is some error!"; 
      echo $this->email->print_debugger(); 
     } 
     else 
     { 
      echo "Mail is sent successfully"; 
      echo $this->email->print_debugger(); 
     } 


    } 

而且这些错误被显示...

http://i.stack.imgur.com/vqAyR.png

但邮件发送给用户,它总是打印1到邮件。

如果您正在使用笨那么你为什么要使用mysql_fetch_object ??

请更改如下代码,请帮我.. :(

回答

1

在模型中

public function get_client_id() 
{ 

    $email = $this->input->post('email'); 
    $query = $this->db->query("SELECT no FROM users WHERE email = '$email' LIMIT 1"); 
$query = $this->db->get(); 
    $result = $query->row(); 
    return $result->no; 
} 

在您的控制器中,而不是

$data = $this->user_model->get_client_id(); 

    $message = print($_SESSION['myid']); 

使用本

$message = $this->user_model->get_client_id(); 
+0

谢谢德拉吉。有用!! –

+0

@DharaVihol如果它是有用的你,那么请接受的答案,以便它可以对其他人有用的。 – Drudge

1

CI中你不需要调用mysql_fetch_object()作为笨​​已经为你写的所有数据库层,你的呼吁之前将结果在它返回数组已经($result = $query->result_array();)。

要正确使用CodeIgniter的数据库层,举个例子如下:

public function get_client_id() 
{ 
    $email = $this->input->post('email'); 
    $query = $this->db->query("SELECT no FROM users WHERE email = '$email' LIMIT 1"); 
    $result = $query->row(); 
    return $result->no; 
} 

这将让你的查询响应的第一行,并从结果只返回值no

然后在你的sendmail()功能,您可以更改:

$data = $this->user_model->get_client_id(); 

$message = print($_SESSION['myid']); 

简单

$message = $this->user_model->get_client_id(); 

有没有必要通过SESSION数组中的ID,除非你有存放了以后使用(在这种情况下,请便!只需添加该代码回到我的示例代码)

+0

谢谢你的帮助。我必须说你的答案更多解释..谢谢你.. –