任何时候对数据的增删改查都是最基础的操作,Thinkphp 为我们提供了一套对数据操作的方法。下面分别介绍下:
连接数据表,并查找数据
连接数据表很简单 $user = M("user"); 使用 M 方法连接表格,里面的表名称不要带前缀(因为前缀已经在配置文件中设置了)。
查找 $user->select(); 使用 select() 就可以查找到内容了,这里是查找到表内全部的数据
$user = M("user");
$data = $user->select();
//这样就获取到user表内的全部数据
插入数据
插入数据 $user->add($data); 这里的 add() 方法可以插入数据,传入的参数是数组。
if(IS_POST){
$data = $_POST;
$user = M("user");
$user->add($data); //插入数据
}
删除数据
删除数据 $user->delete($id); 使用 delete() 方法可以删除数据。
public function del($id){
$user = M("user");
$res = $user->delete($id);
if($res){
$this->success("删除成功!");
}else{
$this->error("删除失败!");
}
}
修改数据
修改数据 $user->save($data); 使用 save() 方法修改数据。
创建数据对象
创建数据对象的目的是过滤掉提交的数据中有数据表中不存在的数据。对于提交数据库更安全方便。
创建数据对象 $user->create();
以下是完整的代码
<?php
namespace Admin\Controller;
use Think\Controller;
class UserController extends Controller{
public function index(){
$user = M("user");
$data = $user->select();
$this->assign("users",$data);
$this->display();
}
public function add(){
if(IS_POST){
$user = M("user");
$data = $_POST;
$data['password'] = md5($data['password']);
if($user->create($data)){ //如果create方法不传参,默认是获取$_POST数据
if($user->add()){ //add不需要传参,直接从create里获取数据
$this->success('添加成功!',U('Admin/User/index'));
}else{
$this->error('添加失败!');
}
}else{
$this->error("添加失败!");
}
exit;
}
$this->display();
}
public function del($id){
$user = M("user");
$res = $user->delete($id);
if($res){
$this->success("删除成功!");
}else{
$this->error("删除失败!");
}
}
public function mod($id = 0){
$user = M("user");
if(IS_POST){
$data = I();
if($data['password']){
$data['password'] = md5($data['password']);
}else{
unset($data['password']);
}
if($user->create($data)){
if($user->save()){
$this->success("修改成功!",U("Admin/User/index"));
}else{
$this->error("修改失败!");
}
}else{
$this->error("修改失败!");
}
exit;
}
$data = $user->find($id);
$this->assign("user",$data);
$this->display();
}
}
这里要注意:
查询的数据绑定用 $this->assign("users",$data);
当前方法绑定到模板哟你 $this->display();
