Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从数据库中获取值_Php_Codeigniter_Email - Fatal编程技术网

Php 无法从数据库中获取值

Php 无法从数据库中获取值,php,codeigniter,email,Php,Codeigniter,Email,我想从数据库中获取列“no”的值,然后我想将此值发送给用户,但我遇到了一些错误 下面是我为获取模型中的值而编写的查询,以及我为向控制器中的用户发送邮件而编写的函数sendmail() 型号:用户\型号 public function get_client_id() { $email = $this->input->post('email'); $query = $this->db->query("SELECT no FROM users WHERE

我想从数据库中获取列“no”的值,然后我想将此值发送给用户,但我遇到了一些错误

下面是我为获取模型中的值而编写的查询,以及我为向控制器中的用户发送邮件而编写的函数sendmail()

型号:用户\型号

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;
}
控制器:Users.php

public function sendmail()
    {
        $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.gmail.com',
        'smtp_port' => '465',
        'smtp_user' => 'something@gmail.com',
        '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('dharavihol119@gmail.com', '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();
        }


    }
这些错误正在显示

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


请帮帮我(

如果您使用的是Codeigniter,那么为什么要使用
mysql\u fetch\u 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();

如果您使用的是Codeigniter,那么为什么要使用
mysql\u fetch\u 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();

在CodeIgniter中,您不需要调用
mysql\u fetch\u object()
,因为CodeIgniter已经为您编写了所有的数据库层,您刚才所做的调用将返回一个已经包含结果的数组(
$result=$query->result\u 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();

无需在
会话中传递id
数组,除非您将其存储在那里供以后使用(在这种情况下,请继续!只需将该代码添加回我的示例代码)

在CodeIgniter中,您不需要调用
mysql\u fetch\u object()
由于CodeIgniter已经为您编写了所有数据库层,因此您刚才所做的调用将返回一个已经包含结果的数组(
$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();

无需在
会话中传递id
数组,除非您将其存储在那里供以后使用(在这种情况下,请继续!只需将该代码添加回我的示例代码)

谢谢Drudge。它很有效!!@DharaVihol如果它对你有用,那么请接受答案,这样它也可以对其他人有用。谢谢Drudge。它很有效!!@DharaVihol如果它对你有用,那么请接受答案,这样它也可以对其他人有用。谢谢你的帮助。我必须说你的答案解释得更多..T谢谢你的帮助。我必须说你的回答解释得更多。谢谢。。