我想获得专栏的价值' no'从数据库和之后,我想将此值邮寄给用户,但我收到了一些错误..
这是我为获取模型中的值而编写的查询以及我编写的函数sendmail(),用于将邮件发送给控制器中的用户..
型号:User_model
MutationObserver
控制器:Users.php
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;
}
这些错误正在显示......
http://i.stack.imgur.com/vqAyR.png
但邮件会发送给用户,并始终将1打印到邮件中。
请帮帮我.. :(
答案 0 :(得分:1)
如果您使用Codeigniter,那么为什么使用mysql_fetch_object
?
请更改您的代码,如下所示:
在你的模特中
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();
答案 1 :(得分:1)
在CodeIgniter中,您不需要调用mysql_fetch_object()
,因为CodeIgniter已经为您编写了所有数据库层,您之前所做的调用将返回一个已包含结果的数组({{1 }})。
要正确使用CodeIgniter的数据库层,请执行以下操作:
$result = $query->result_array();
这将获得查询响应的第一行,并从结果中返回值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();
数组中传递id,除非您将其存储在那里供以后使用(在这种情况下,请直接进行!只需将该代码添加回我的示例代码)