CodeIgniter学习笔记

来源:互联网 发布:ubuntu无法登录桌面 编辑:程序博客网 时间:2024/05/17 18:02
CodeIgniter学习笔记
$this->config->item('base_url');
--------------------------------------------------------------------
------------------------------------------------------------类库参考
------数据库类------------------------------------------------------------
$this->load->database();
$query->num_rows()   //当前请求的行数
$query->num_fields()   //当前请求的字段数
$query->free_result()   //释放当前查询所占用的内存并删除其关联的资源标识
$this->db->insert_id()   //这个ID号是执行数据插入时的ID
$this->db->affected_rows() //insert,update后,显示被影响的行数
$this->db->count_all('my_table');//计算出指定表的总行数
insert_string:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$sql = $this->db->insert_string('table_name', $data);
$this->db->query($sql);
update_string:
$data = array('name' => $name, 'email' => $email, 'url' => $url);
$where = "author_id = 1 AND status = 'active'"; 
$sql = $this->db->update_string('table_name', $data, $where);
$this->db->query($sql);
所有的值都会被自动转义,形成了较为安全的查询语句
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick'));
多结果标准查询(对象形式):
$query = $this->db->query('SELECT name, title FROM my_table');
if ($query->num_rows() > 0){
   foreach ($query->result() as $row){
      echo $row->title;
      echo $row->name;
}} echo 'Total Results: ' . $query->num_rows();
单结果标准查询(对象形式):
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;
------输入类-------------------------------------------------------
$config['global_xss_filtering'] = TRUE;
//让codeigniter自动处理POST 或者 COOKIE 数据
$this->input->post('some_data');
$this->input->post('some_data', TRUE); //跨站脚本过滤XSS Filtering
$this->input->get('some_data');
$this->input->get_post('some_data', TRUE);先搜POST后GET
$this->input->cookie('some_data', TRUE);
$this->input->server('some_data');
echo $this->input->ip_address(); //无效,返回0.0.0.0
echo $this->input->user_agent(); //浏览器的user agent信息
------转载类--------------------------------------------------------
$this->load->library('class_name', $array, 'object name')
$this->load->view('file_name', $data, true/false) //true返回,默认false
$this->load->model('Model_name', 'object name');
$this->load->database('options', true/false)
$this->load->helper('file_name') //不包括 _helper.php 扩展名
$this->load->plugin('file_name') //不包括 _plugin.php 扩展名
$this->load->vars($array)   //转化为以key为变量名的var,与extract同
$this->load->file('filepath/filename', true/false)
$this->load->lang('file_name')
$this->load->config('file_name')
------表单验证类-------------------------------------------------------
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
//以上,同控制器内定义username_check函数
if ($this->form_validation->run() == FALSE) //验证未通过:FALSE
view部分:
value="<?php echo set_value('quantity', '0'); ?>"
以下有第三参数:TRUE/FALSE
set_select('myselect', 'one', TRUE);
set_checkbox('mycheck', '1');
set_radio('myradio', '1', TRUE);
<input type="text" name="colors[]" value="<?=set_value('colors[]'); ?>" />
------Session类----------------------------------------------------
$this->load->library('session');
$session_id = $this->session->userdata('session_id'); //不存在,返回FALSE
$this->session->set_userdata($array);    //添加 session
$this->session->set_userdata('some_name', 'some_value');
$this->session->unset_userdata('some_name');   //删除 Session 数据
$this->session->sess_destroy();     //销毁 Session
$config['sess_expiration'] = 7200;    //session 持续的秒数,2小时
$config['sess_encrypt_cookie'] = FALSE;    //是否对 session 数据加密
------配置类-----------------------------------------------------------
$lang = $this->config->item('item name');//元素不存在时,返回FALSE
$this->config->set_item('item_name', 'item_value');
$this->config->site_url();   //网站的 URL
$this->config->system_url();   //system folder 的URL
------基准测试类---------------------------------------------------
{elapsed_time}     //页面执行时间
<?php echo $this->benchmark->elapsed_time();?>
{memory_usage}     //占用内存值
<?php echo $this->benchmark->memory_usage();?>
------------------------------------------------------------------------
------------------------------------------------------------辅助函数参考
------数字辅助函数------------------------------------------------------
$this->load->helper('number');
echo byte_format(45678); // Returns 44.8 KB
------字符串辅助函数----------------------------------------------------
$this->load->helper('string');
echo random_string('alnum', 16); //可用于生成密码串或随机字串
$string = "\n"; echo repeater($string, 30); //产生30个空行
$string="Joe's \"dinner\"";
$string=quotes_to_entities($string); 
//results in "Joe&#39;s &quot;dinner&quot;" 
//字符串中的单引号和双引号转换为相应的 HTML 字符表示
strip_quotes() //去掉字符串中的单引号和双引号
------url辅助函数-------------------------------------------------------
$this->load->helper('url');
echo site_url("news/local/123");
//http://example.com/index.php/news/local/123
echo base_url(); //config.php 中设定的 base_url
echo current_url(); //当前页
echo uri_string(); //当前页的URI段
echo index_page(); //config.php 中设定的 index_page
echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
redirect('/login/form/', 'refresh'); //刷新,默认是跳转:location
redirect('/article/13', 'location', 301);
------表单辅助函数------------------------------------------------------
$this->load->helper('form');
$attributes = array('id' => 'myform');
echo form_open('email/send', $attributes);
//<form method="post" action="http://example.com/index.php/email/send" id="myform" />
$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden); //第三个参数
//<form method="post" action="http://example.com/index.php/email/send">
//<input type="hidden" name="username" value="Joe" />
//<input type="hidden" name="member_id" value="234" />
form_hidden('username', 'johndoe');
//<input type="hidden" name="username" value="johndoe" />
echo form_label('你的名字是?','username');
//<label for="username">你的名字是?</label>
------------------------------------------------------------------
----------------------------------------------------------常规主题
------URI路由-----------------------------------------------------
example.com/product/4/
$route['product/:num'] = "catalog/product_lookup";
即将被重定向
:num 将匹配一个只包含有数字的segment(段).
:any 将匹配一个包含任何字符的segment.
------缓存---------------------------------------------------------
$this->output->cache(n);
只需将上面的代码放在你的controller的function中的任何位置:
其中 n 是你希望缓存更新的 分钟 数。
注意:Benchmark 标签在使用了缓存的页面仍然可用。
警告: 由于CI存储缓存文件的方式,只有通过 view 文件的输出才能被缓存。
如果你不再想使用缓存,仅需将上面的代码从你的controller里面删除即可。
注意: 这样做并不能让缓存文件立即消失,它将会自动过期并被删除。
如果你想立即删除那些文件,就必须自己动手了。
------激活分析器(调试,优化)----------------------------------------
$this->output->enable_profiler(TRUE);
$this->output->enable_profiler(FALSE);
------安全---------------------------------------------------------
1.过滤不良数据. 
2.验证数据以确保符合正确的类型, 长度, 大小等. 
3.在提交数据到你的数据库之前将其转换.
原创粉丝点击