gpt4 book ai didi

mysql - ci hmvc 查询在模型中返回空结果集

转载 作者:行者123 更新时间:2023-11-30 22:45:31 25 4
gpt4 key购买 nike

我最近尝试为 Code igniter 2.2.1 实现 wiredesignz hmvc 模块化扩展,位于 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/。我按照概述中的说明安装了扩展程序。

我的数据库转储如下:

CREATE TABLE IF NOT EXISTS `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(250) NOT NULL,
`passwd` varchar(50) NOT NULL,
`type` enum('super','sub') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `admin`
--

INSERT INTO `admin` (`id`, `email`, `passwd`, `type`) VALUES
(1, 'deb.pratyush@gmail.com', 'd84c095fc9614ddd8d6cad216956ba11', 'super');

-- --------------------------------------------------------

--
-- Table structure for table `cms`
--

CREATE TABLE IF NOT EXISTS `cms` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(250) NOT NULL,
`nav` varchar(20) NOT NULL,
`slug` varchar(300) NOT NULL,
`description` varchar(200) NOT NULL,
`keywords` varchar(160) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'user id',
`fname` varchar(50) NOT NULL,
`lname` varchar(50) NOT NULL,
`email` varchar(250) NOT NULL,
`addr1` varchar(250) NOT NULL,
`addr2` varchar(250) NOT NULL,
`regdate` date NOT NULL,
`country` varchar(250) NOT NULL,
`pwd` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

我在管理模块中使用模型进行身份验证 application/modules/admin/models/admin_model.php 有
类名 Admin_model。它的代码是

class Admin_model extends CI_Model{

function __construct()
{
parent::__construct();
$this->load->database();
}

function auth_admin($email, $passwd)
{
echo $email.' '.$passwd;
$sql ="SELECT `id`, `email`, `type` FROM admin WHERE email='$email' AND passwd = MD5('$passwd')";
$res=$this->db->query($sql);
echo " res=<pre>".print_r($res, 1)."</pre>";
}
}

管理 Controller 位于 application/modules/admin/controllers/admin.php 中,类名为 Admin。代码如下:

class Admin extends MX_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('cms/cms_model');
$this->load->model('admin_model');
$this->load->library('session');
}

public function index()
{
$this->load->view('admin_header');
$this->load->view('admin_login');
$this->load->view('admin_footer');
if(!empty($this->input->post('admin_login')))
{
$email = $this->input->post('log');
$passwd = $this->input->post('pwd');



$auth_res = $this->admin_model->auth_admin($email, $passwd);
//print_r($auth_res);
if(!empty($auth_res))
{

}
}
}
}

请注意,数据库库是在 application/config/autoload.php 中自动加载的。 url 助手也是如此。

我得到的输出如下:

deb.pratyush@gmail.com pratyush res=

CI_DB_mysql_result Object
(
[conn_id] => Resource id #38
[result_id] => Resource id #47
[result_array] => Array
(
)

[result_object] => Array
(
)

[custom_result_object] => Array
(
)

[current_row] => 0
[num_rows] => 1
[row_data] =>
)

因此,尽管通过登录表单发送的用户输入是 deb.pratyush@gmail.com 作为电子邮件,pratyush 作为密码(密码在用户表中经过 MD5 散列),但调试给出了一个空结果集。

我什至尝试过将值“deb.pratyush@gmail.com”和“pratyush”分别硬编码为电子邮件和密码列,但没有成功。

我已经被这个困住了很多时间。有人可以帮忙吗?

最佳答案

如果您正在使用 codeignator,请使用 codeignator standered of query

阅读手册 CI QUERY

 $this->db->where('email', $email);
$this->db->where('passwd', md5($passwd));
$query = $this->db->get('admin');
if (!$this->db->_error_message()) {
if ($query->num_rows() > 1) {
foreach ($query->result() as $row) {
print_r($row);
}
} else {
echo "error";
}
}

关于mysql - ci hmvc 查询在模型中返回空结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29717028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com