discuz - PHP如何这样操作MYSQL的方法?
C::t(数据表)->delete(键值)
比如删除数据表的代码
能实现这样方法的关键代码是什么?
现在只会这样的方法实现
C::t(数据表,键值)
看上去好low...
回复内容:
最近看DISCUZ的代码,由于是自学PHP,DISCUZ这样操作数据库的方法看不明白求解答。
C::t(数据表)->delete(键值)
比如删除数据表的代码
能实现这样方法的关键代码是什么?
现在只会这样的方法实现
C::t(数据表,键值)
看上去好low...
class C {
private $_table;
public static function t($table)
{
$c = new C();
$c->_table = $table;
return $c;
}
public function delete($id)
{
$sql = "delete from `" . $this->_table ."` where `id`='" . $id . "'";
//执行sql语句
}
}
C::t('table')->delete($id);
其他朋友说了很多,我就闲得蛋疼给你贴一段代码吧,没有测试,大概是这个意思。
这个就是链式写法了,执行完方法可以返回自身对象,具体请看文章
SQL链式写法传送门
t方法返回了对象之后delete
建议先看看ORM
抓一个orm框架看看就行了,无非都是一些封装罢了。看懂原理自己也可以写出来,楼主这个思想比较赞,这种top down design 的编码方式会使得代码逻辑更加清晰。
Mysql的数据库操作类
当年我觉得jQuery的链式调用好厉害,后来点开源码看到一堆return this
在此我不贴代码,我也不知道dz是怎样的机制,首先你需要知道正常情况下删除的sql语句是什么,基本上所有的删除语句无非是表和条件不同罢了,上面你所写前面有表后面有键值两者都已经传递过去了,它怎么写的就随意了 (pdo mysqli )数据库的操作写在对应的方法里面就行了。还有你得简单的了解面向对象,然后你找到dz中相关类,就可以看到具体实现了。
推荐阅读
-
Mac环境下php操作mysql数据库的方法分享
-
常用的PHP数据库操作方法(MYSQL版)
-
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
-
如何用Visual Studio操作MySQL?在Visual Studio中连接MySQL数据库的方法
-
php操作mysql获取select 结果的几种方法
-
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
-
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法_PHP
-
PHP操作mysql数据库分表的方法_php实例
-
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法_php技巧
-
PHP HTML JavaScript MySQL代码如何互相传值的方法分享_php技巧