无法从数据库中获取值

时间:2016-02-28 11:55:13

标签: php codeigniter email

我想获得专栏的价值' 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打印到邮件中。

请帮帮我.. :(

2 个答案:

答案 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,除非您将其存储在那里供以后使用(在这种情况下,请直接进行!只需将该代码添加回我的示例代码)