页次: 1
第一个问题就是数据库的连接。
ci中数据库的连接很容易, 简单的修改一下配文件就可以完成。
在文件 application/config 下有个文件 database.php 文件。 通过修改配置信息就可以完成数据库的配置
四个重要的信息
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['database'] = 'ipbbs'; $db['default']['dbdriver'] = 'mysql';
这样数据库的信息就配置好了。
是用数据库是 ipbbs
ipbbs.net
离线
第二个问题就是创建数据表
这里创建一个最简单的表
create table guestbook ( id int(11) unsigned not null auto_increment primary key, name varchar(20) not null, content varchar(255) not null ) engine=myisam charset=utf8;
除去id ,设置两个字段, 一个留言者的名字, 一个留言的内容
插入一条数据作为测试
insert into guestbook (name, content) values ('ipbbs', 'my site is www.ipbbs.net');
ipbbs.net
离线
第三个问题 如果读出这条数据
首先要创建一个模型。
创建的模型需要在 application/models 目录里创建一个文件 guestbook_model.php
<?php class Guestbook_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function get_guestbook() { $query = $this->db->get('guestbook'); return $query->result_array(); } }
这一定先要加载数据库,才可以使用数据库。加载数据库的方法就是
$this->load->database();
当然这条语句写在函数 get_guestbook 也可以, 这样写有个坏处,每一个方法都需要写这句话。
写在 construct 中,只用写一次就ok了。
第二步 就是创建一个控制器, 毕竟url和控制器是相关联的。 在 application/controllers 中创建文件 guestbook.php
<?php class guestbook extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('guestbook_model'); } public function index() { $data = $this->guestbook_model->get_guestbook(); var_dump($data); } }
这里再 controller 中加载了一个模型 guestbook_model 。 这个类中的方法都可以使用模型都可以使用。
直接访问
http://localhost/ipbbs/index.php/guestbook
可以获得结果
array (size=3) 'id' => string '1' (length=1) 'name' => string 'ipbbs' (length=5) 'content' => string 'my site is www.ipbbs.net' (length=24)
ipbbs.net
离线
如何写入数据库
再模型中添加一个方法, 通过这个方法写入数据库
set_guestbook
<?php class Guestbook_model extends CI_Model { public function __construct() { parent::__construct(); $this->load->database(); } public function get_guestbook() { $query = $this->db->get('guestbook'); return $query->result_array(); } public function set_guestbook() { $data = array ( 'name' => $this->input->post('name'), 'content' => $this->input->post('content') ); return $this->db->insert('guestbook', $data); } }
修改控制器 , index 是首先获得数据, 然后使用模板guestbook.php
<?php class guestbook extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('guestbook_model'); } public function index() { $data['guestbook'] = $this->guestbook_model->get_guestbook(); $this->load->view("guestbook", $data); } public function add() { if($this->guestbook_model->set_guestbook()) { echo "ok"; } else { echo "error"; } } }
guestbook 的内容是
<!Doctype html> <html> <head> <meta charset='utf8' /> <title> www.ipbbs.net </title> </head> <body> <?php foreach($guestbook as $v) { echo "<p>{$v['id']} # {$v['name']} " ; echo "<div> {$v['content']} "; } ?> <form action="http://localhost/ipbbs/index.php/guestbook/add" method="post"> 名字: <input type="text" name="name"> 内容: <textarea name="content"></textarea> <input type="submit" value="submit"/> </form> </body> </html>
这样就可以,查看和添加留言
ipbbs.net
离线
这里出现的两个问题 , 第一个是可以提交空的内容
第二个是 使用url 很不方便。
ipbbs.net
离线
页次: 1