Php 无法从数据库中获取值
我想从数据库中获取列“no”的值,然后我想将此值发送给用户,但我遇到了一些错误 下面是我为获取模型中的值而编写的查询,以及我为向控制器中的用户发送邮件而编写的函数sendmail() 型号:用户\型号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
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谢谢你的帮助。我必须说你的回答解释得更多。谢谢。。