一 数据库配置文件的配置和自动加载
1 直接修改config文件夹下面的database.php,把数据库相关信息填上去即可
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '123456',
'database' => 'tpstudy',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
如果有多个数据库或数据源也可以配置多个,然后在load的时候配置参数就能访问到数据库了
2 自动加载database(可选)
找到config下面的autoload.php,在 $autoload['libraries'] = array(); 这个数组里写上'database',配置方面文件里也给出了一些例子,照着弄就OK了
二 原生SQL操作数据库
load->database();
$query=$this->db->query("select * from tp_user order by id desc");
$res=$query->result_array();
$data["userList"]=$res;
$this->load->view("user/list",$data);
}
public function mergeUser(){
$this->load->database();
$param=$this->input->get();
$data[0]=$param['userName'];
$data[1]=$param['id'];
$sql="update tp_user set userName=? where id=?";
$result=$this->db->query($sql,$data);
if($result===False){
echo "修改失败";
}else{
echo "受影响的行数".$this->db->affected_rows();
}
}
}
?>
这种方式比较万能,复杂的查询或数据库操作可以选择这种方式,使用数据库或者返回视图都需要通过load方法,其中load数据库操作的时候可以使用自动加载,这样就不需要写很多次 $this->load->database();了
三 ORM模式操作数据库
"后勤部",
"orderByValue"=>0,
"description"=>"暂无",
"pid"=>0
);
$this->load->database();
$res=$this->db->insert("tp_dept",$data);
if($res===False){
echo "保存失败";
}else{
echo "保存成功";
}
}
/**
* 修改操作
*/
public function updateDept(){
$data=array(
"name"=>"卫生部",
"orderByValue"=>0
);
$this->load->database();
$res=$this->db->update("tp_dept",$data,array("id"=>9));
if($res===False){
echo "修改失败";
}else{
echo "修改成功";
}
}
/**
* 删除操作
*/
public function removeDept(){
$this->load->database();
$res=$this->db->delete("tp_dept",array("id"=>9));
if($res===False){
echo "删除失败";
}else{
echo "删除成功";
}
}
/**
* 查询操作
*/
public function queryDept(){
$this->load->database();
$res=$this->db->get("tp_dept")->result_array();
echo "";
var_dump($res);
}
public function otherQuery(){
$this->load->database();
$res=$this->db->select("id,name,pid")
->from("tp_dept")
->where(array("id >"=>5))
//->where("id in",array(5,6,8,10))
->order_by("id asc")
->get()
->result_array();
echo "";
var_dump($res);
}
}
?>
result_array()用于把数据转成数组的形式方便后期页面的遍历读取
四 页面展示
用户列表
用户信息
id
用户名
昵称
生日
和其他框架不同的是CI框架的页面展示默认不加载任何的模板引擎,还是最初的使用php代码直接在页面遍历或读取数据