[英]Codeigniter $query->row_array() SQL $query->result_array()
[英]Why is the result of my code blank after executing query, on this line $out = $query->result_array();
我是Codeigniter PHP的新手
public function ForgotPassword($email)
{
$this->db->select('email');
$this->db->from('member');
$this->db->where('email', $email);
$query=$this->db->get();
$out = $query->result_array();
if (count($out) > 0) {
$email = $out[0]['email'];
return array('status'=>1, 'email'=>$email);
} else {
return array('status'=>0, 'msg'=>'email not found');
}
}
這是我的模型函數。此行給我空結果$out = $query->result_array();
我不知道為什么,它應該給我電子郵件地址,以便我可以繼續發送電子郵件。 我想使用忘記密碼功能向用戶發送密碼。
public function ForgotPassword()
{
$email = $this->input->post('email');
$findemail = $this->MY_model->ForgotPassword($email);
if ($findemail['status'] == 1) {
$this->MY_model->sendpassword($findemail);
} else {
echo " $email not found, enter correct email id";
}
}
這是我的控制器功能。 在這里,我得到了$findemail
空值。 我不知道為什么
public function sendpassword($data)
{
$email = $data['email'];
$query1=$this->db->query("SELECT * from member where email = '".$email."' ");
$row=$query1->result_array();
if ($query1->num_rows() > 0) {
$passwordplain = "";
$passwordplain = rand(10000000,99999999);
$newpass['password'] = md5($passwordplain);
$this->db->where('email', $email);
$this->db->update('member', $newpass);
$mail_message='Dear '.$row[0]['username'].','. "\r\n";
$mail_message.=' Your <b>Password</b> is
<b>'.$passwordplain.'</b>'."\r\n";
require 'C:\xampp\htdocs\phpmailer\class.phpmailer.php';
require 'class.phpmailer.php';
$mail = new PHPMailer;
$mail->IsSendmail();
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com";
$subject = 'Testing Email';
$mail->AddAddress($email);
$mail->IsMail();
$mail->From = 'vishal@gmail.com';
$mail->FromName = 'admin';
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->Body = $mail_message;
$mail->Send();
if (!$mail->send()) {
echo "Failed to send password";
} else {
echo "Password sent ! check your mail";
}
} else {
echo "Email not found!!!!";
}
}
還有上層模型功能,它不發送電子郵件。 我正在使用phpmailer發送電子郵件。 請幫忙。
如果您的模型名稱為“ MY_model”,則在控制器文件中寫入構造函數,然后將模型加載到其中,如下所示。
function __construct() {
parent::__construct();
$this->load->model('my_model');
}
然后按如下所示修改控制器的ForgotPassword函數。
public function ForgotPassword()
{
$email = $this->input->post('email');
$findemail = $this->my_model->ForgotPassword($email);
if ($findemail['status'] == 1) {
$this->my_model->sendpassword($findemail);
} else {
echo " $email not found, enter correct email id";
}
}
我希望這有幫助。
我做了一個檢查數據庫中是否存在電子郵件的功能。 它名為CheckUser()。 然后在ForgotPassword()中,調用CheckUser()(必須以$ email作為參數)。
<?php
public function CheckUser($email)
{
$response = $bdd->prepare('SELECT email FROM member WHERE email = :email');
$response->execute([
"email" => $$email
]);
$data = $response->fetchAll();
return $data[0];
}
public function ForgotPassword($email)
{
// here you call our new function
** CHECKUSER FUNCTION調用下面的UDPATE **
$out = $this->CheckUser($email);
// sizeof will return the lenght of the returned data from our CheckUser() function
if (sizeof($out) > 0){
$email = $out[0]['email'];
return array('status'=>1, 'email'=>$email);
}
else {
return array('status'=>0, 'msg'=>'email not found');
}
}
讓我知道它是否有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.