thinkphp对mysql的CURD操作

利用thinkphp(3.2.3)来操作数据库,首先要连接数据库。我们需要对某数据库写一个配置文件,thinkphp会根据该配置文件自动连接上数据库。而model文件就不用自定义,内置的即可解决问题。配置文件写于目录application\home\conf\config.php下:

<?php
return array(
//‘配置项‘=>‘配置值‘
‘DB_TYPE‘=> ‘mysql‘,//数据库类型
‘DB_HOST‘=> ‘127.0.0.1‘,//服务器地址
‘DB_NAME‘=>‘jiu151231‘,//数据库名称
‘DB_USER‘=>‘root‘,//用户名
‘DB_PWD‘=>‘‘,//密码
‘DB_PORT‘=>‘3306‘,//端口
‘DB_PREFIX‘=>‘‘,//数据库表前缀
);

到此,准备工作完成。其中,那个数据库表前缀,网上关于默认各种说法,我的默认为空。估计其他前缀,打开phpmyadmin可以看到吧。

CURD操作代码都在目录application\home\controller\indexcontroller.class.php里,这是控制器文件。下面都是采用M方法实例化表对象的。

C

插入数据

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $jiu0=M(‘myguests‘);
        $j0[‘firstname‘]=‘lv‘;
        $j0[‘lastname‘]=‘oe‘;
        $jiu0->add($j0);
    }
}

插入多条数据

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $jiu0=M(‘myguests‘);
        $list[]=array(‘firstname‘=>‘li‘,‘lastname‘=>‘weifeng‘);
        $list[]=array(‘firstname‘=>‘liu‘,‘lastname‘=>‘tian‘);
        $jiu0->addAll($list);
    }
}

R

读单条记录 find方法返回第一个符合条件的记录

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu=M(‘myguests‘);
        $data=$gu->where(‘firstname="lv"‘)->find();
        dump($data);
    }
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu=M(‘myguests‘);
        $gu->where(‘firstname="lv"‘)->find();
        dump($gu->data());
    }
}

读多条数据 select方法 如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $list = $gu->where(‘firstname="lv"‘)->order(‘id‘)->limit(5)->select();//返回5条数据
        dump($list);
    }
}

读取字段值

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $list = $gu->where(‘id=5‘)->getField(‘firstname‘);
        dump($list);
    }
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $list = $gu->getField(‘id‘,true);//返回整列
        dump($list);
    }
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $list = $gu->getField(‘id,firstname‘,5);//返回多列,5条记录
        dump($list);
    }
}

U

save方法

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $data[‘firstname‘]=‘liu‘;
        $data[‘lastname‘]=‘hl‘;
        $gu->where(‘id=5‘)->save($data);
    }
}
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $gu->firstname=‘liu‘;
        $gu->lastname=‘hl‘;
        $gu->where(‘id=6‘)->save();
    }
}

更新字段

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $gu->where(‘id=6‘)->setField(‘firstname‘,‘wang‘);
    }
}

更新多个字段

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $data=array(‘firstname‘=>‘lv‘,‘lastname‘=>‘huan‘);
        $gu->where(‘id=1‘)->setField($data);
    }
}

而对于统计字段(通常指的是数字类型)的更新,系统还提供了 setInc 和 setDec 方法。

$User = M("User"); // 实例化User对象
$User->where(‘id=5‘)->setInc(‘score‘,3); // 用户的积分加3
$User->where(‘id=5‘)->setInc(‘score‘); // 用户的积分加1
$User->where(‘id=5‘)->setDec(‘score‘,5); // 用户的积分减5
$User->where(‘id=5‘)->setDec(‘score‘); // 用户的积分减1

3.2.3版本开始,setInc和setDec方法支持延迟更新,用法如下:

$Article = M("Article"); // 实例化Article对象
$Article->where(‘id=5‘)->setInc(‘view‘,1); // 文章阅读数加1
$Article->where(‘id=5‘)->setInc(‘view‘,1,60); // 文章阅读数加1,并且延迟60秒更新(写入)

D

delete方法

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $gu = M("myguests");
        $gu->delete(2);//删除主键2对应的记录
    }
}

delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如:

$User = M("User"); // 实例化User对象
$User->where(‘id=5‘)->delete(); // 删除id为5的用户数据
$User->delete(‘1,2,5‘); // 删除主键为1,2和5的用户数据
$User->where(‘firstname="lv"‘)->delete(); // 删除所有firstname为"lv"的用户数据
时间: 2024-10-17 11:26:03

thinkphp对mysql的CURD操作的相关文章

MySQL 的 CURD 操作

0. 说明 CURD 操作通常是使用关系型数据库系统中的结构化查询语言(Structured Query Language,SQL)完成的 CURD 定义了用于处理数据的基本原子操作 CURD 代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作. 1. 创建表 [1.0 通用语法] CREATE TABLE table_name (column_name column_type); [1.1 创建学生表] create table tb_stu(

ThinkPHP学习第二天---CURD操作

1:数据的创建,create只是创建于数据字段对应的信息 已知数据表的结构如下图 现在来创建一个页面提交的表单 //注意到没有,原表中并木有birthday字段 <form method="post" action="http://127.0.0.1/demo39/Home/User/create"> <p>用户:<input type="text" name="user" /></p

ThinkPHP CURD操作

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建.更新.读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法.CURD操作通常是可以和连贯操作配合完成的.下面来分析下各自的用法: (下面的CURD操作我们均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑) 创建(Create) 在ThinkPHP中使用add方法新增数据到数据库(而并不是create方法). add  写入(新增)数据到数据库 用法 add($d

php对xml文件进行CURD操作

XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: - 表达:本身就可以作为阅读文档,当然还可以使用XSLT之类的进行解析和再显示. 缺点是schema验证复杂,相比后来的json等格式,相对冗余. 下面的是利用php对xml文件进行CURD操作: xml文件的格式为: 1 <?xml version="1.0" encoding=&

ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function testdb(){ $obj=M("User"); dump($obj); } 此时浏览器输出: object(Model)#5 (20) { ["_extModel:private"] => NULL ["db:protecte

一个简单的ORM制作(CURD操作类)

SQL执行类 CURD操作类 其他酱油类 此篇是为上篇文章填坑的,不知道上篇砸过来的砖头够不够,不够的话请大家继续砸. CURD操作类负责将用户提供的条件转换为SQL语句,并提供给IHelper执行,返回Model集合. CURD类需要一个接口抽象出公共方法.便于修改和扩展,提供泛型接口.为了简单起见暂时未提供JOIN的实现,可以以数据库视图替代 public interface IDbOper<T> : IDisposable where T : new() { object Insert(

ThinkPHP3.2基础教程(19)--模型-CURD操作-数据创建

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建.更新.读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法. CURD操作通常是可以和连贯操作配合完成的. 数据创建 在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据: // 获取表单的POST数据 $data['name'] = $_POST['name']; $data['email'] = $_POST['email']; // 更多的表

mysql 数据库的操作

--01 mysql 数据库的操作 -- 链接数据库 mysql -uroot -pmysql -- 不显示密码 mysql -uroot -p mysql -- 退出数据库 quit/exit/ctrl + d -- sql语句最后需要有分号;结尾 -- 显示数据库版本 version select version(); -- 显示时间 select now(); -- 查看当前使用的数据库 select database(); -- 查看所有数据库 show databases; -- 创建

通过jdbc完成单表的curd操作以及对JDBCUtils的封装

概述:jdbc是oracle公司制定的一套规范(一套接口),驱动是jdbc的实现类,由数据库厂商提供.所以我们可以通过一套规范实现对不同的数据库操作(多态) jdbc的作用:连接数据库,发送sql语句,处理结果 curd操作:它代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作 jdbc操作步骤: 1.数据库和表 在这里,用exercise数据库下的student表. 2.创建一个项目 由于是在javase版本的ecplise下创建的,lib文件夹