
正文
thinkphp魔术,php魔术方法autoload
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库
thinkphp 同时连接两个数据库的配置方法如下:
1、在Db.class.php脚本文件里面的类增加一个魔术方法__get(),写法如下:
public function __get($propertyName)
{ return $this-$propertyName;
}
这个方法是用来访问类中protected $config成员属性用的。有的人可能会说,直接把protected改成public岂不是更好。这样只解决了基类的问题,假如,子类也同样进行了受保护,那要你更改更多的文件,这是我们做IT程序员非常不愿意看到的事情。
2、在Model.class.php中的getTableName()方法更改如下:
$tablepre = $this-db-config['tablepre'];
if(empty($this-trueTableName)) {
$tableName??= empty($tablepre) ? $this-tablePrefix : $tablepre;
if(!empty($this-tableName)) {
$tableName .= $this-tableName;
}
else
{
$tableName .= parse_name($this-name);
}
$this-trueTableName? ? =? ?strtolower($tableName);
}
return (!empty($this-dbName)?$this-dbName.'.':'').$this-
trueTableName;这样就完成了多库自由切换时,导致的表前缀问题。
/*******************面向对象PDO连接方式*********************/
'DB_TYPE' = 'PDO', // 数据库类型
'DB_DSN' = 'mysql:host=localhost;dbname=master', // DSN连接。
'DB_USER' = 'root', // 数据库用户名
'DB_PWD' = '123456', // 数据库密码
'DB_PORT' = '3306', // 数据库端口
'DB_PREFIX' = 'g_', // 数据表前缀
'DB_CHARSET' = 'utf8', // 数据库编码默认采用utf8
相关问答
Q1: thinkphp 中两个下划线是什么意思?
★PHP起止为双下划线的常量即为“魔术常量”:
__LINE__文件中的当前行号。
__FILE__文件的完整路径和文件名。
__DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠
注:以上内容来自“PHP中文手册-语言参考-常量-魔术常量”。
Q2: thinkphp 关于php魔术引号 我只要上传 带连接的 或者是 图片 之类的 就给我自动加一个 “ / ” 求解决!
我想确定一下,你传过来的值加的是"/"吗,如果是"/",你可以尝试在Action中把"/"替换成空。
以前我传过来的值加的是"\",所以我当初是用的stripslashes($_POST['ck'])来搞定的。
thinkphp魔术的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php魔术方法autoload、thinkphp魔术的信息别忘了在本站进行查找喔。






