Thinkphp如何调用数据库中表前缀不同的数据表

ziluopao 发布于 2016/05/31 18:18
阅读 4K+
收藏 1

一般来说thinkphp数据表的前缀是统一的,但有时还有需求是不一样的情况,比如需要有某个表的前缀名和TP部署时的表前缀不同名的,此时如何调用呢?当然了,初学者回答这个问题肯定会说,就用原生的sql调用啊,你要是有这种思维,我劝你还是好好学习, 为啥?用原生还用thinkphp做啥?!猪都能想出来!

注:上了颜色的文字都是我后来加上的,写上这些是为了警告那些游手好闲之人别闲着无聊没事找到别人的帖子中和痞子似的捣乱!

另外也建议论坛管理员,对于此种人的举报作一下处理,维护论坛的正常秩序!

俺很反对光说不练的人,大道里一套一套的,还有些似乎对谁不满的那种恶心之人!劝此种人多学习!并且不要在这里浪费时间!

要回答就好好说话,不要满嘴里就和吃了大粪一样,何必呢?

以下是问题补充:

@ziluopao:谈谁的代码垃圾你自己去开个帖和别人论去,不要跑到别人的帖子中扯这些和主题不相关的事,人渣! (2016/06/01 15:26)
加载中
0
skq
skq

function M($name='', $tablePrefix='',$connection='') 

M 方法,第2个参数就可设置不同前缀,第3个参数还可连接其他数据库

1
WolfX
WolfX
我不是主做PHP的,但也知道TP数据库的源码在哪里改... 楼主真的不该这样说话,好好用心学习
WolfX
WolfX
回复 @ziluopao : 人家骂你你人家不对,你在这里骂人就是你的不对,既然知道被骂肯定不好受的, 就不要去学那些喷子
ziluopao
ziluopao
真有意思,本来,来我的帖子中作客我要以礼相待,但有个条件也要看此人是不是捣乱!假如我跑到你家随地大小便,你就知道了!
0
shijacky
shijacky
你一百个都允许,php你传什么给它它就读什么,只是你不统一,管理起来很麻烦而已
狂飙的小蜗牛
狂飙的小蜗牛
回复 @eechen : 装逼也要遵守基本法
eechen
eechen
回复 @ziluopao : 我都不用框架,我MySQLi/PDO操作起来那是分分钟的事情。
ziluopao
ziluopao
回复 @eechen : 你没套牢,你也解决不了啊!
eechen
eechen
看得出楼主已经被"框架"思维套牢了,连数据表前缀操作起来都无所适从了。
ziluopao
ziluopao
如何实现
0
南湖船老大
南湖船老大
再看什么discuz,ecshop的源码,你迟早是个废人!!
西湖老司机
西湖老司机
回复 @ziluopao : 也是 动不动就说别人写的代码垃圾,别人写的好歹成功了,身家都千万上亿,然不成自己写的东西连垃圾都不如
ziluopao
ziluopao
回复 @西湖老司机 : 我宁可不和有这种好心的人打交道!
ziluopao
ziluopao
回复 @南湖船老大 : 你应该发个誓要是以后再跑到我的帖子中捣乱,你就不是人养的,然后让大家监督!这才算是骨气!你要是做到这点我真谢谢你,人渣!好象别人挺喜欢你似的!恶心!一个自恋狂!
ziluopao
ziluopao
回复 @南湖船老大 : 劝你与人为善!一个恶人做啥都不行!不是不报时候没到,不信你就等着那一天!
ziluopao
ziluopao
回复 @南湖船老大 : 我发现你这种人就是喜欢被别人骂的货,即贱货,你想想,你妈生你容易吗,即使你妈是个贱种,到你这代他不希望你贱吧!你说屏蔽,我高兴还来不及呢!因为你,我浪费 了多少时间!我已建议论坛管理员对你采取行动!
下一页
0
梦想岛
梦想岛
楼主多看看mvc框架,看看DAO机制,建议用PDO来搞。
0
南湖船老大
南湖船老大

分分钟打楼猪脸。
TP源代码中,找到这个Model.class.php文件,原先代码:

public function table($table) {
        $prefix =   $this->tablePrefix;
        if(is_array($table)) {
            $this->options['table'] =   $table;
        }elseif(!empty($table)) {
            //将__TABLE_NAME__替换成带前缀的表名
            $table  = preg_replace_callback("/__([A-Z0-9_-]+)__/sU", function($match) use($prefix){ return $prefix.strtolower($match[1]);}, $table);
            $this->options['table'] =   $table;
        }
        return $this;
    }

修改为:

public function table($table,$prefix=true) {
        $prefix =   $this->tablePrefix;
        if(is_array($table)) {
            $this->options['table'] =   $table;
        }elseif(!empty($table)&& $prefix==true) {
            //将__TABLE_NAME__替换成带前缀的表名
            $table  = preg_replace_callback("/__([A-Z0-9_-]+)__/sU", function($match) use($prefix){ return $prefix.strtolower($match[1]);}, $table);
            $this->options['table'] =   $table;
        }
        return $this;
    }

只需要多传一个参数,兼容已有代码,轻轻松松解决不同表前缀问题。

0
李富贵丶
为什么总会有人有这种高人一等的优越感?  我他妈就不明白了,你比别人多入行两年,懂的东西多就可以随意嘲讽么,你难道比人家多长了根鸡巴不成? 问个问题你上去就直接骂人 难不成你刚开始编程的时候你什么都懂?从来没有向人请教过? 给你个建议 先学会做人再去敲你的代码吧
李富贵丶
回复 @ziluopao : 行了哥们,毕竟他也回答你问题了,可能言辞欠妥,但也算出于好心,你也少说两句,好好的一个开源社区不要整天弄的乌烟瘴气
ziluopao
ziluopao
回复 @ziluopao : 他不仅在编程领域这样,日常生活中也是如些作风!比如上个厕所都会偷看别人的老弟,然后就开始和别人比了,说,你不如的长,碰到比他的长的,他就说,你不如我的强,恶心之态,不宣泄一下,他是活不了的,碰到了神他就是蛆!为了装神弄鬼,只在我等菜鸟面前摆出一副神态!人渣莫不是这样!本来我的一个编程问题扯了这么多无聊的话,说白了就是人渣在捣乱!
ziluopao
ziluopao
这种贱人少归少,不过也有,最让人恶习的是,经常和蛆似的在人面前证明自己是存在的!小人的作派!懂了点道理就装不下他了!这个长那个短的,说白了,此种小人就是没有教养,即有爹生没爹养的货!贱!
0
s
shenjr
你还不如百度快
0
大王叫我来卖萌
大王叫我来卖萌
求助别人你就别挑三拣四的了,少说两句。
ziluopao
ziluopao
要不以后你发帖我在你的帖子中骂你两句,看你的怎么处理
ziluopao
ziluopao
那也不能别人求助你骂人家吧,这种行为不是小人,你认为是啥?本来求助应该帮助一下,不仅不帮还在那里语言讽刺,其实你讽一句两句的也不要仅,我也忍,我看这家伙没完没了,是乎拿着这个做文章了,况且你做的文章和我的帖子的主题有关还行,在那里讨论起ecshop和discuz的垃圾代码的问题了,要是对此感兴趣,他可以另发一帖,但别在人家的帖子里捣乱!
0
任意球
任意球
可能双方都有言语上的失准,双方容易带入情感并且有所误解,但从解决问题的角度上,你这帖子里的言语已经使用不当了,容易挑起口水战,博主,你觉得呢
ziluopao
ziluopao
问一个问题,难道我还上来骂人不成,你曾经这么做过?况且我也没有那么闲心!语言挑逗?那就更奇怪了,在第一楼除了红字是后来加上的,就是光突突的一个问题,这有啥奇怪的,就是问一个问题而已,其实就是一个闲心难忍的人进来捣乱,很简单!我问的问题多了去了,你可以看看,。
返回顶部
顶部