php - 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
);
解决方案
推荐阅读
- kubernetes-ingress - 如何在gloo入口控制器中使用动态值路由请求
- node.js - 与 Mongooose 的数据库连接
- java - 通过索引而不是位置获取列宽
- python - 一次将多个 QGraphicsItem 添加到 QGraphicsScene 中(矢量化方式)
- r - 为 ggplot 编写自定义函数:添加外部主题时如何避免覆盖 `theme()` 设置
- typescript - 类型检查不会从类型中删除“部分”
- algorithm - 动态变量(在词法分析中)
- ios - Swift - 具有持续时间的 CoreAnimation
- javascript - 当我第一次点击删除按钮时,所有的笔记都消失了,但是当我刷新页面时它工作得很好
- r - R Shiny 应用程序错误 eval 中的错误:找不到对象“年龄”