php m是什么数据库,thinkphp5-thinkPHP数据库M()用的多吗?

学完了 thinkPHP C和V 最后看的 操作数据库,

之前学的PHP自带的PDO,感觉也会用了,

现在thinkPHP 也自己带了一套 操作数据库的 类。

我看了看教程,再学习也挺繁琐哦的。。

各种传值格式又都得记,本来学了class MySQLi,后来知道都用pdo,又学了pdo,现在又一个M。。。我都快学串了。

我问问这个thinkPHP 的大M 方法,在你们做项目用的多吗?

比pdo 的方便吗?

我还学习吗。。

回复内容:

学完了 thinkPHP C和V 最后看的 操作数据库,

之前学的PHP自带的PDO,感觉也会用了,

现在thinkPHP 也自己带了一套 操作数据库的 类。

我看了看教程,再学习也挺繁琐哦的。。

各种传值格式又都得记,本来学了class MySQLi,后来知道都用pdo,又学了pdo,现在又一个M。。。我都快学串了。

我问问这个thinkPHP 的大M 方法,在你们做项目用的多吗?

比pdo 的方便吗?

我还学习吗。。

我没用过TP,不是很清楚里面的M是什么,但是还是能指出:你理解有误,这是两件事情。

学PHP的人肯定都要会用PDO或者Mysqli,这根本不存在学习的问题,文档就在那里,会用就行,需要花时间学习的是SQL语法。

而M阿D阿这种东西是另外一层封装,它们通常用来解决以下问题:

1- 写sql很麻烦(例如字段清单),越长的sql维护起来也越麻烦

2- 拼凑sql的时候更麻烦

3- 不同的人写的sql不同,造成表、字段别名不一致,容易带来问题

4- sql注入

5- 等等

对于相同功能,PDO方式可能如下:

$db = new PDO();

$row = $db->query('SELECT * FROM `users` WHERE `id` = 5')->fetchRow();

使用M的话可能会类似:

$row = M('User')->where(array('id' => 5))->findRow(); //M('User')可能等效于new User,而User是一个继承与Model的类

简短的说,各种框架都想了各种方法避免开发人员用直接写SQL语句的方式访问数据库,明白这个原理就行了,不需要特别的学习什么,需要的时候查手册就好了,没必要记住。而且这种东西出了问题一样是SQL异常,必须掌握SQL语法才能解决问题。

你看了文档之后就会感觉用起来很方便啊,大哥,框架的意义在哪里?!不就是让你少写代码吗!话说tp 3.2.3数据库驱动用pdo重写了(完全基于pdo的)

你既然要用Thinkphp框架了肯定首选使用M或者D方法啊!

如果你要实例化模型类文件,就用D

如果不用加载模型类,就用M

一般情况简单的CURD都用M。根据实际情况来用。希望对你有帮助

thinkphp里面有两种模型调用方式,M()和D(),比如操作用户表:

M('user')->add(array('name' => 'zhangsan'));

D('**U**ser')->add(array('name' => 'lisi'));

注意D('User')中user首字母大写。两者的区别是,D()可以由你自己撰写扩展的模型操作,而M()是thinkPHP内置的方法,也就是说D()可实现功能扩展,而M()功能不可扩展,性能上D()也就比M()弱了一些。

你学PHP当然要对pdo和mysqli方法都有所了解,但是在具体的项目中,用thinkPHP封装好的方法去操作就好了。

我用D比较多

几乎每个项目中都会使用到数据库,而在ThinkPHP此类框架中,一般是将一张表封装成一个对象,而在php中,对象的实例化是需要new类的,代码类似于

//类似于这种

MysqlTableClass $obj_Table =new MysqlTableClass('db_name','table_name');

obj_test=$obj_Table->getOne();

而ThinkPHP的M函数(这里我不得不纠正下你的说法了,类中的才叫方法,这个M位于公共函数里,所以只能叫函数),封装的就是上面的new操作,返回的直接就是一个对象。

技巧拓展

建议不要使用M方法,因为当你后期需要添加自定义模型的时候,M方法还得一个个的改成D,非常麻烦,而如果你直接使用D方法,则可以避免此类问题。

综上

直接使用D方法即可,本质上就是一个封装而已~ 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值