This time I will bring you an analysis of the use cases of the CodeIgniter framework database. What are the precautions when using the CodeIgniter framework database. The following is a practical case, let's take a look.
Start now, first move the CI framework to your own server directory and configure config/config.php
$config['base_url'] = 'http://localhost:90/CI/';
Then configure the database in config/databases .phpMy practice configuration is as follows
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = 'root'; $db['default']['database'] = 'demo'; $db['default']['dbdriver'] = 'mysql';
Other things that newbies don’t need now are to create a database and a user table. This is in my source code package and you can import it directly. But the prerequisite is that you need to create a demo database
The reg class code is as follows
<?php /*************************************** * 用户注册模块和数据库的基本操作实践 * 17:44 2013.2.18 * @Author sdeep wang ***************************************/ class Reg extends CI_Controller{ function construct(){//此函数每次必须写是继承父类的方法 parent::construct(); $this->load->database();//这个是连接数据库的方法,放到这里的好处只要调用该方法就会连接数据库 } function index(){ $this->load->view('reg_view');//这个是使用哪个视图来显示相当于Smarty中的display } function reg_insert(){ $data['name'] = $this->input->post('name');//这个是指取得POST数组的值然后赋值一个心的数组 $data['sex'] = $this->input->post('sex'); $data['age'] = $this->input->post('age'); $data['pwd'] = md5($this->input->post('pwd'));//这里用了一个md5加密只是为了演示 $data['email'] = $this->input->post('email'); $this->db->insert('user',$data);//这个是数据库操作插入操作 redirect('/reg/reg_select/', 'refresh');//这个是跳转函数是url辅助函数里面的一个方法 } function reg_select(){//这个查询数据库的方法 $this->db->select('id,name,sex,age,email');//这里是查询要显示的字段,可不能像我第一次这样写啊$this->db->select('id','name','sex','age','email'); $data['query'] = $this->db->get('user');//这个是取得数据(如果你上面写的和我第一次一样的话只能取的一个字段) $this->load->view('select_view',$data);//这里是调用哪个视图并分配数据给指定视图显示 } function reg_delete(){//删除数据的操作 $id = $this->input->get('id');//这里是取得get传过来的值 $this->db->where('id',$id);//这里是做where条件这个相当重要,如果没有这个你有可能把这个表数据都清空了 $this->db->delete('user');//删除指定id数据 redirect('/reg/reg_select/', 'refresh');//同上跳转 } function reg_update(){//跟新数据的操作 $data['id'] = $this->input->get('id');//同上取的get传值过来的ID $this->load->view('update_view',$data);//同上调用视图分配数据 } function reg_com_update(){//这个是真正的跟新数据操作方法 $id = $this->input->post('id');//同上取得post中的id值 $data = array(//把post数组的值封装到新的数组中为了下面跟新操作用 'name'=>$this->input->post('name'), 'pwd'=>md5($this->input->post('pwd')), 'email'=>$this->input->post('email' ) ); if(!empty($id) && (count($data) > 1)){//判断id值是否传过来并且判断封装的数组是否有元素存在 $this->db->where('id',$id);//同上准备where条件 $this->db->update('user',$data);//跟新操作 } redirect('/reg/reg_select/', 'refresh');//同上跳转 } } ?>
The view code is as follows
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>用户注册</title> </head> <body> <form action="<?php echo site_url('reg/reg_insert/'); ?>" method="post"> <table> <tr> <td> 姓名:<input type="text" name="name" /> </td> </tr> <tr> <td> 姓别:<input type="radio" name="sex" value="1" />男 <input type="radio" name="sex" />女 </td> </tr> <tr> <td> 年龄:<input type="text" name="age" /> </td> </tr> <tr> <td> 密码:<input type="password" name="pwd" /> </td> </tr> <tr> <td> 邮件:<input type="text" name="email" /> </td> </tr> <tr> <td> <input type="submit" value="注册" /> <input type="reset" value="重置" /> </td> </tr> </table> </form> </body> </html>
The second view code is as follows
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>显示数据库中的所有注册用户</title> <style> *{ margin:0 auto; } table { border:1px solid gray; border-collapse: collapse; width:500px; text-align:center; } th,td { border:1px solid gray; } </style> </head> <body> <table> <caption><h3>注册用户的显示</h3></caption> <tr> <th>ID</th> <th>Name</th> <th>Sex</th> <th>Age</th> <th>Email</th> <th>Operate</th> </tr> <?php foreach($query->result() as $item):?> <tr> <td><?php echo $item->id; ?></td> <td><?php echo $item->name; ?></td> <td><?php echo $item->sex; ?></td> <td><?php echo $item->age; ?></td> <td><?php echo $item->email; ?></td> <td> <a href="<?php echo site_url('reg/reg_delete');?>?id=<?php echo $item->id;?>" rel="external nofollow" >删除</a> | <a href="<?php echo site_url('reg/reg_update');?>?id=<?php echo $item->id;?>" rel="external nofollow" >修改</a> </td> </tr> <?php endforeach; ?> </table> </body> </html>
The three views are as follows
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>修改用户注册信息</title> </head> <body> <form action="<?php echo site_url('reg/reg_com_update');?>" method="post"> <table> <tr> <td>姓名:<input type="text" name="name" /></td> </tr> <tr> <td>密码:<input type="password" name="pwd" /></td> </tr> <tr> <td>邮件:<input type="text" name="email" /></td> </tr> <tr> <td> <input type="submit" value="修改" /> <input type="hidden" name="id" value="<?php echo $id; ?>" /> </td> </tr> </table> </form> </body> </html>
The renderings are as follows
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related matters on the PHP Chinese website article!
Recommended reading:
How to use Thinkphp5 uploadify to implement file upload
How to implement ADODB transaction processing in PHP
The above is the detailed content of CodeIgniter framework database use case analysis. For more information, please follow other related articles on the PHP Chinese website!