PHP如何这样操作MYSQL的方法?

发布于 2022-09-01 16:43:16 字数 210 浏览 19 评论 0

最近看DISCUZ的代码,由于是自学PHP,DISCUZ这样操作数据库的方法看不明白求解答。

C::t(数据表)->delete(键值)

比如删除数据表的代码

能实现这样方法的关键代码是什么?

现在只会这样的方法实现


C::t(数据表,键值)


看上去好low...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

凉城凉梦凉人心 2022-09-08 16:43:16
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);

其他朋友说了很多,我就闲得蛋疼给你贴一段代码吧,没有测试,大概是这个意思。

傾旎 2022-09-08 16:43:16

这个就是链式写法了,执行完方法可以返回自身对象,具体请看文章
SQL链式写法传送门

凉宸 2022-09-08 16:43:16

t方法返回了对象之后delete

无妨# 2022-09-08 16:43:16

建议先看看ORM

谁与争疯 2022-09-08 16:43:16

抓一个orm框架看看就行了,无非都是一些封装罢了。看懂原理自己也可以写出来,楼主这个思想比较赞,这种top down design 的编码方式会使得代码逻辑更加清晰。

人生百味 2022-09-08 16:43:16

Mysql的数据库操作类

肩上的翅膀 2022-09-08 16:43:16

当年我觉得jQuery的链式调用好厉害,后来点开源码看到一堆return this

浊酒尽余欢 2022-09-08 16:43:16

在此我不贴代码,我也不知道dz是怎样的机制,首先你需要知道正常情况下删除的sql语句是什么,基本上所有的删除语句无非是表和条件不同罢了,上面你所写前面有表后面有键值两者都已经传递过去了,它怎么写的就随意了 (pdo mysqli )数据库的操作写在对应的方法里面就行了。还有你得简单的了解面向对象,然后你找到dz中相关类,就可以看到具体实现了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文