Custom SQL statement When the provided API cannot meet our requirements for SQL statements, we usually write SQL statements ourselves. CI also provides a relatively powerful general SQL API that can meet our needs.
<span>$res</span>=<span>$this</span>->db->select('id,name'<span>) </span>->from('表名'<span>) </span>->whrer('id >=',5)<span>//</span><span>注意id后面要有个空格</span> ->limit(3,2<span>)<span>//这里与sql的limit是顺序是反的</span> </span>->order_by('id desc '<span>) </span>->get();<span>//</span><span>翻译成sql语句</span> <span>var_dump</span>(<span>$res</span>-><span>result()); </span><span>echo</span> <span>$this</span>->db->last_query();<span>//</span><span>先是最近一条SQL</span>
Create a new MY_Controller.php in application/core At the same time, you need to configure it in application/config/config.php:
<span>class</span> MY_Controller <span>extends</span><span> CI_Controller { </span><span>public</span> <span>function</span><span> __construct() { parent</span>::<span>__construct(); </span><span>//</span><span>一定呀先调用父类的构造方法 //登录验证、权限验证、其他操作。。。</span> <span> } }</span>
Create user_model.php in application/models
<span>$config</span>['subclass_prefix'] = 'MY_';
Call custom model in controller application/controllers:
When loading the model, you can give the model a name:
<span>class</span> User_model <span>extends</span><span> CI_Model { </span><span>public</span> <span>function</span><span> getAll() { </span><span>$res</span> = <span>$this</span>->db->get('表名'<span>); </span><span>return</span> <span>$res</span>-><span>result(); } }</span>
Url related function
<span>class</span> User <span>extends</span><span> MY_Controller { </span><span>public</span> <span>function</span><span> index() { </span><span>$this</span>->load->model('User_model');<span>//</span><span>调用以类名为主,而不是文件名</span>
<span>$list</span> = <span>$this</span>->User_model->getAll();<span>//</span><span>调用模型获取数据</span>
<span>$this</span>->load->view('user/index',<span>array</span>('list'=><span>$list</span>));<span>//</span><span>加载视图</span><span> } }</span>
In the user/add.php view:
<span>$this</span>->load->model('User_model','user');<span>//</span><span>调用以类名为主,而不是文件名 </span> <span>$list</span> = <span>$this</span>->user->getAll();<span>//</span><span>调用模型获取数据</span>
If it is the index.php directory, use: This API.
At the same time, loading the URL every time is very troublesome. You can also set it to load automatically and modify it in config/config.php:
<span>public</span> <span>function</span><span> addView() { </span><span>$this</span>->load->helper('url');<span>//</span><span>为了不把表单传递的地址写死,用url函数</span> <span>$this</span>->load->view('user/add'<span>); }</span>
<span><</span><span>form </span><span>action</span><span>="<?php echo site_url('user/insert'); ?>"</span><span> method</span><span>="post"</span><span>></span> <span><!--</span><span> ........</span><span>--></span> <span></</span><span>form</span><span>></span>
Routing 🎜>
base_url();
$route
['rouxx/showxx/([d]+).html'] = 'rou/show/$1';//
<span>$config</span>['helper'] = <span>array</span>('url');
<页> Pagling
Some parameters you must knowHow many records are there in total How many records should be on one page How many pages in total How many pagination links should be displayed before and after the current page
<span>//</span><span>总条数</span> <span>$config</span>['total_rows'<span>] </span><span>//</span><span>一页显示几条</span> <span>$config</span>['per_page'<span>] </span><span>//</span><span>定义当前页的前后各有几个数字链接</span> <span>$config</span>['num_links'<span>] </span><span>//</span><span>定义没有分页参数,主URL</span> <span>$config</span>['base_url']
<span>$this</span>->load->library('pagination');
<span>$this</span>->pagination->initialize(<span>$config</span>);
<span>echo</span> <span>$this</span>->pagination->create_links();
<span>echo</span> <span>$this</span>->db->limit(<span>$num</span>,<span>$start</span>); <span>//</span><span>从$start查$num条</span>
<?<span>php </span><span>if</span> ( ! <span>defined</span>('BASEPATH')) <span>exit</span>('No direct script access allowed'<span>); </span><span>class</span> Page <span>extends</span><span> CI_Controller { </span><span>public</span> <span>function</span><span> user_add(){ </span><span>$this</span>->load->model('test_m'<span>); </span><span>for</span> (<span>$i</span> = 1;<span>$i</span> <= 100;<span>$i</span>++<span>){ </span><span>$name</span> = 'u'.<span>$i</span><span>; </span><span>$arr</span> = <span>array</span>("usid"=><span>$i</span>,"uname"=><span>$name</span>,"upass"=>123456<span>); </span><span>$this</span>->test_m->user_insert(<span>$arr</span><span>); } } </span><span>public</span> <span>function</span><span> pagelist(){ </span><span>$this</span>->load->model('test_m'<span>); </span><span>$user</span> = <span>$this</span>->test_m-><span>user_select_all(); </span><span>$allnum</span> = <span>count</span>(<span>$user</span><span>); </span><span>$pagenum</span> = 20<span>; </span><span>$config</span>['total_rows'] = <span>$allnum</span><span>; </span><span>$config</span>['per_page'] = <span>$pagenum</span><span>; </span><span>$config</span>['num_links'] = 3<span>; </span><span>$config</span>['base_url'] = "/CI/index.php/page/pagelist"<span>; </span><span>$config</span>['use_page_numbers'] = <span>true</span><span>; </span><span>$this</span>->load->library('pagination'<span>); </span><span>$this</span>->pagination->initialize(<span>$config</span><span>); </span><span>var_dump</span>(<span>$this</span>->pagination-><span>create_links()); </span><span>echo</span> <span>$this</span>->pagination-><span>create_links(); </span><span>echo</span> "<br />"<span>; </span><span>$id</span> = <span>$this</span>->uri->segment(3); <span>//</span><span>获得url第三段字符</span> <span>$id</span> =<span>$id</span> ? <span>$id</span>:1<span>; </span><span>$start</span> = (<span>$id</span> - 1) * <span>$pagenum</span><span>; </span><span>$list</span> = <span>$this</span>->test_m->user_select_limit(<span>$start</span>,<span>$pagenum</span><span>); </span><span>var_dump</span>(<span>$list</span><span>); } }</span>
上传文件
视图 /views/up.php:
<span><</span><span>html</span><span>></span> <span><</span><span>form </span><span>action</span><span>="ci/CodeIgniter_2.2.0/index.php/upload/up"</span><span> method</span><span>="post"</span><span> enctype</span><span>="multipart/form-data"</span><span>></span> <span><</span><span>input </span><span>type</span><span>="file"</span><span> name</span><span>="upfile"</span> <span>/></span> <span><</span><span>input </span><span>type</span><span>="submit"</span><span> name</span><span>="sub"</span><span> value</span><span>="提交"</span> <span>/></span> <span></</span><span>form</span><span>></span> <span></</span><span>html</span><span>></span>
控制器:
<span>$config</span>['upload_path'] = './uploads/'<span>; </span><span>//</span><span>设置允许上传的类型</span> <span>$config</span>['allowed_types'] = 'gif|jpg|png'<span>; </span><span>$config</span>['max_size'] = '100'<span>; </span><span>//</span><span>如果是图片还可以设置最大高度和宽度</span> <span>$config</span>['max_height'] = 768<span>; </span><span>$config</span>['max_width'] = 1024;
还可以设置其他的一些额外参数,详细看用户手册。
<span>//</span><span>upload为调用的类名,全小写</span> <span>$this</span>->load->library('upload',<span>$config</span><span>); </span><span>//</span><span>如果上传框的name写的是userfile,那就不用传参数了,如果不是,把name的值传进去</span> <span>$this</span>->upload->do_upload('上传框的name');
<span>//</span><span>出错信息</span> <span>$error</span> = <span>array</span>('error' => <span>$this</span>->upload-><span>display_error()); </span><span>//</span><span>成功信息</span> <span>$data</span> = <span>array</span>('upload_data' => <span>$this</span>->upload->data());
<?<span>php </span><span>if</span> ( ! <span>defined</span>('BASEPATH')) <span>exit</span>('No direct script access allowed'<span>); </span><span>class</span> Upload <span>extends</span><span> CI_Controller { </span><span>//</span><span>显示带表单的视图</span> <span>public</span> <span>function</span><span> index(){ </span><span>$this</span>->load->view('up'<span>); } </span><span>//</span><span>显示上传信息</span> <span>public</span> <span>function</span><span> up(){ </span><span>$config</span>['upload_path'] = './uploads/'<span>; </span><span>$config</span>['allowed_types'] = 'gif|jpg|png'<span>; </span><span>$config</span>['max_size'] = "2000"<span>; </span><span>$this</span>->load->library('upload',<span>$config</span><span>); </span><span>//</span><span>打印成功或错误的信息</span> <span>if</span>(<span>$this</span>->upload->do_upload('upfile'<span>)) { </span><span>$data</span> = <span>array</span>("upload_data" => <span>$this</span>->upload-><span>data()); </span><span>var_dump</span>(<span>$data</span><span>); } </span><span>else</span><span> { </span><span>$error</span> = <span>array</span>("error" => <span>$this</span>->upload-><span>display_errors()); </span><span>var_dump</span>(<span>$error</span><span>); } } }</span>
Session
利用CI类实现session登录
<span>//</span><span>生成一个随机不重复的字符串走位加密的key保存到config.php的encryption_key中</span> <span>$config</span>['encryption_key']='adb8bf6d0ac4e17b42a80941582497a4';
<span>$this</span>->load->library('session');
<span>$array</span> = <span>array</span>('id'=>3,'name'=>'jack'<span>); </span><span>$this</span>->session->set_userdata(<span>$array</span>);
<span>$this</span>->session->userdata(session名);
<span>$this</span>->session->unset_userdata('SESSION名');
$config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRUE $config['sess_use_database'] = FALSE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300;
<span>//</span><span>设置</span> <span>$this</span>->session->set_flashdata('test','aaaaa'<span>); </span><span>//</span><span>读取</span> <span>$test</span> = <span>$this</span>->session->flashdata('test');
控制层
function test_func(){
//获取model页面需要的两个参数
$competition_id = $_GET["competition_id"];
$report_class = $_GET["report_class"];
$this->load->model("Action"); //引入model
$data["head"] = $this->Action->get_report_item($competition_id, $report_class); //引用model的函数
$this->load->view("test_result",$data); //将结果显示在test_result.php页面中
}
view层:
字段名称(含义)</td> //该td中显示的是你从数据库、即model层中获取到的数据的含义,想显示多少,显示哪个,在这里确认 </tr> |
test; ?></td> </tr> </table> echo “123”; }?> </div>
You can use $title directly in the view file
Related labels:
source:php.cn
Previous article:Use PHP to add shopping products, PHP to add shopping products_PHP tutorial
Next article:How to enable CURL function in PHP?_PHP Tutorial
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Latest Issues
How to group and count in MySQL?
I'm trying to write a query that extracts the total number of undeleted messages sent to f...
From 2024-04-06 18:30:17
0
1
353
Related Topics
More>
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
|