thinkphp对mysql的CURD操作

php中文网
发布: 2016-06-20 12:41:37
原创
948人浏览过

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

<?phpreturn 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免费学习笔记(深入)”;

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {    public function index(){        $jiu0=M('myguests');        $j0['firstname']='lv';        $j0['lastname']='oe';        $jiu0->add($j0);    }}
登录后复制

插入多条数据

<?phpnamespace 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方法返回第一个符合条件的记录

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {    public function index(){        $gu=M('myguests');        $data=$gu->where('firstname="lv"')->find();        dump($data);    }}
登录后复制
<?phpnamespace 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商城系统
启科网络PHP商城系统

启科网络商城系统由启科网络技术开发团队完全自主开发,使用国内最流行高效的PHP程序语言,并用小巧的MySql作为数据库服务器,并且使用Smarty引擎来分离网站程序与前端设计代码,让建立的网站可以自由制作个性化的页面。 系统使用标签作为数据调用格式,网站前台开发人员只要简单学习系统标签功能和使用方法,将标签设置在制作的HTML模板中进行对网站数据、内容、信息等的调用,即可建设出美观、个性的网站。

启科网络PHP商城系统 0
查看详情 启科网络PHP商城系统
<?phpnamespace 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);    }}
登录后复制

读取字段值

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {    public function index(){        $gu = M("myguests");        $list = $gu->where('id=5')->getField('firstname');        dump($list);    }}
登录后复制
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {    public function index(){        $gu = M("myguests");        $list = $gu->getField('id',true);//返回整列        dump($list);    }}
登录后复制
<?phpnamespace 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方法

<?phpnamespace 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);    }}
登录后复制
<?phpnamespace 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();    }}
登录后复制

更新字段

<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller {    public function index(){        $gu = M("myguests");        $gu->where('id=6')->setField('firstname','wang');    }}
登录后复制

更新多个字段

<?phpnamespace 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方法

<?phpnamespace 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"的用户数据
登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号