使用‘##__’替换表前缀,也很方便

灰暗的星星灰暗的星星灰暗的星星灰暗的星星灰暗的星星
 

在很多时候,我需要使用sql语句,这样就会使用到类似__TABLENAME__样的表名称,但打字起来并不顺手,我希望简便一些,借鉴了他人的处理方式,使用##__代替表前缀,清晰可辨,书写简易。

例如:

$sql = "SELECT * FROM ##__tablename WHERE cat_id=100";

解析后的$sql为:

"SELECT * FROM shop_tablename WHERE cat_id=100";


要做到这样的效果,需要变化两个地方:



1.在ThinkPHP/Library/Think/Model.class.php的 1417 行附近,

把:
$sql = strtr($sql,array('__TABLE__'=>$this->getTableName(),'__PREFIX__'=>$this->tablePrefix));

修改为:
//$sql = strtr($sql,array('__TABLE__'=>$this->getTableName(),'__PREFIX__'=>$this->tablePrefix));
$sql = strtr($sql,array('__TABLE__'=>$this->getTableName(),'__PREFIX__'=>$this->tablePrefix, C('SQL_REPLACE')=>$this->tablePrefix)); //添加##__替换表前缀




2.在数据库配置中,加上一句:

'SQL_REPLACE' => '##__', //替换表前缀



3.删除Runtime缓存后,就可以使用了。

提交评论


安全码
刷新

 

自1996年以来,公司一直专注于域名注册、虚拟主机、服务器托管、网站建设、电子商务等互联网服务,不断践行"提供企业级解决方案,奉献个性化服务支持"的理念。作为戴尔"授权解决方案提供商",同时提供与公司服务相关联的硬件产品解决方案。
 

联系方式

地址:河南省郑州市经五路2号

电话:0371-63520088 

QQ:76257322

网站:800188.com

电邮:该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。

微信:用企业微信联系