首页 > 解决方案 > codeigniter 是否有可能阻止从某些表中获取数据?

问题描述

我对codeigniter还很陌生,我面临着挑战。我正在开发一个电子商务项目,该项目在它附带的数据库中预先构建了表。然后我更改了代码的主题,并在其中加入了 MLM Unilevel 系统。当我获取数据时,一切正常。

现在,当我创建一个新表“成员”并尝试从中获取记录时,问题就出现了。我使用了这一行$query = $this->db->get('members');,但是当我尝试从成员表中查询所有记录时它返回空白页。当我将表名更改为 "users"$query = $this->db->get('users');时,它会返回 users 表的记录,而无需对代码进行任何其他更改。

然后,我快速打开了一个用于学习的原始 codeigniter 项目,并将代码插入其中并进行了测试$query = $this->db->get('members');$query = $this->db->get('users');一切似乎都运行良好。

是否有可能是头部标记的部分代码中的脚本,防止从成员表中获取数据,同时在用户表中执行相反的操作?或者有没有办法codeigniter定义应用程序将使用的表,同时防止创建的其他不在该列表中的表从中获取数据?我什至尝试删除HEAD(App)的内容,但仍然没有解决问题。我已经尝试寻找可能的解决方案,但我似乎没有得到任何解决这个问题的方法。

这是我的代码。

模型:

class Action_model extends CI_Model{
public function __construct(){
    parent::__construct();
    $this->load->database();
}
public function select_all_data(){
    //select all data from table
    $query = $this->db->get('members');
    return $result = $query->result();
} 
}

控制器:

class Action extends CI_Controller{
public function __construct() {
    parent::__construct();
    $this->load->model('action_model');
}
public function get_all_data()
{
    $data = $this->action_model->select_all_data();
    echo "<pre>";
    print_r($data);
}
}

HEAD(应用程序):(在我的应用程序和成员表中使用此头测试返回空白页)

    <meta name="description" content="<?php echo isset($meta_desc) ? $meta_desc : META_DESC; ?>">
<meta name="keywords" content="<?php echo isset($meta_keys) ? $meta_keys : META_KEYWORDS; ?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<title><?php echo isset($page_title) ? $page_title : SITE_TITLE; ?></title>
<!-- Favicon-->
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<link rel="shortcut icon" type="image/png" href="<?php echo base_url('favicon.png'); ?>"/>
<link rel="icon" href="<?php echo base_url('favicon.ico'); ?>" type="image/x-icon">
<!-- Custom Css -->
<link rel="stylesheet" href="<?php echo base_url('assets/plugins/bootstrap/css/bootstrap.min.css'); ?>">
<link rel="stylesheet" href="<?php echo base_url('assets/css/main.css'); ?>">
<link rel="stylesheet" href="<?php echo base_url('assets/css/authentication.css'); ?>">
<link rel="stylesheet" href="<?php echo base_url('assets/css/color_skins.css'); ?>">
<link rel="stylesheet" href="<?php echo base_url('assets/css/tree.css'); ?>">   
<!-- Bootstrap Material Datetime Picker Css -->
<link href="<?php echo base_url('assets/plugins/bootstrap-material-datetimepicker/css/bootstrap-material-datetimepicker.css'); ?>" rel="stylesheet" />
<!-- Wait Me Css -->
<link href="<?php echo base_url('assets/plugins/waitme/waitMe.css'); ?>" rel="stylesheet" />
<!-- Bootstrap Select Css -->
<link href="<?php echo base_url('assets/plugins/bootstrap-select/css/bootstrap-select.css'); ?>" rel="stylesheet" />
<!-- JQuery DataTable Css -->
<link rel="stylesheet" href="<?php echo base_url('assets/plugins/jquery-datatable/dataTables.bootstrap4.min.css'); ?>">

HEAD(测试):(用这个头测试,两个表都返回结果)

<meta charset="utf-8">
<title><?php if (!empty($title)) echo $title;?></title>
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/style.css" />

返回结果:

成员:(在测试中可见,但在主 App 项目中不可见)

Array
(
[0] => stdClass Object
    (
        [member_id] => 1
        [user_id] => 1
        [referral_key] => 12345
        [up_line] => 1 , 1 , 1 , 1 , 1
        [status] => Active
        [token] => 1-123456789
        [created_on] => 2020-12-07 07:23:07
    )

[1] => stdClass Object
    (
        [member_id] => 20
        [user_id] => 2
        [referral_key] => 44231
        [up_line] => 1 , 1 , 1 , 1 , 1
        [status] => Active
        [token] => 2-799148954
        [created_on] => 2020-12-07 15:29:05
    )
)

用户:(在两个项目中都可见)

Array
(
[0] => stdClass Object
    (
        [user_id] => 1
        [country_id] => 197
        [user_type] => admin
        [referral_id] => 1
        [sponsor_id] => 
        [first_name] => Don
        [last_name] => Don
        [display_name] => 
        [dob] => 0000-00-00
        [gender] => Male
        [id_number] => 105135049
        [email] => don***@gmail.com
        [password] => 67d************************7df
        [reset_code] => 
        [phone] => 07***7
        [city] => Johannesburg
        [avatar] => 
        [profile_desc] => Test start
        [token] => dfuiefeufieyfrjidyf8ug78f7r784
        [is_member] => Yes
        [blocked] => 0
        [joined] => 2020-12-04 19:23:30
    )

[1] => stdClass Object
    (
        [user_id] => 2
        [country_id] => 225
        [user_type] => member
        [referral_id] => 2
        [sponsor_id] => 1
        [first_name] => Sam
        [last_name] => Peter
        [display_name] => 
        [dob] => 0000-00-00
        [gender] => Male
        [id_number] => 
        [email] => sa***@gmail.com
        [password] => 322************************a24
        [reset_code] => 
        [phone] => +44***9
        [city] => London
        [avatar] => 
        [profile_desc] => Some content about myself.
        [token] => mn84u89gh4iuyg849yfuy48j9r4
        [is_member] => Yes
        [blocked] => 0
        [joined] => 2020-12-05 17:00:41
    )
)

我感谢为我解决此问题的任何支持。

谢谢。

数据库配置

$active_group = 'default'; 
$active_record = TRUE;  
$db['default'] = array(     
    'dsn'   => '',     
    'hostname' => 'localhost',     
    'username' => 'root',     
    'password' => 'rootpass',     
    'database' => 'e_mhearnings',     
    'dbdriver' => 'mysqli',     
    'dbprefix' => '',     
    'pconnect' => FALSE,     
    'db_debug' => TRUE,     
    'cache_on' => FALSE,     
    'cachedir' => '',     
    'char_set' => 'utf8',     
    'dbcollat' => 'utf8_general_ci',     
    'swap_pre' => '',     
    'encrypt' => FALSE,     
    'compress' => FALSE,     
    'stricton' => FALSE,     
    'failover' => array(),     
    'save_queries' => TRUE
);

标签: phpmysqlcodeigniter

解决方案


推荐阅读