
1、在Dbclassphp脚本文件里面的类增加一个魔术方法__get(),写法如下:
public function __get($propertyName)
{ return $this->$propertyName;
}
这个方法是用来访问类中protected $config成员属性用的。有的人可能会说,直接把protected改成public岂不是更好。这样只解决了基类的问题,假如,子类也同样进行了受保护,那要你更改更多的文件,这是我们做IT程序员非常不愿意看到的事情。
2、在Modelclassphp中的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
首先在:ThinkPHP\Lib\Think\Db\Driver中添加DbSqliteclassphp驱动,然后在php5的配置文件中启用extension=php_sqlitedll,且这个配置一定要放在最后
到微软官网下载文件,网址:百度搜索选择“SQLSRV20EXE”,点击"next"(下一步),进行下载右键解压到当前目录,把这两个文件拷贝到PHP目录下的ext目录下下图是拷贝后的结果,请参考,不要拷错了。打开php-ini在文件中设置,加上下面两行代码,如下图下面这里设置为On,保存,重启服务,如下图修改thinkphp配置文件,如下图thinkphp控制器文件,随便查个sqlserver表中的数据,看是否能成功打印,如果成功打印,那么证明数据库连接成功。如果不能正确打印,那么看报错提示,在按照提示解决问题。
以上就是关于怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库全部的内容,包括:怎么样配置thinkphp 与本地mysql和sql server同时连接俩个数据库、ThinkPHP如何连接sqlite数据库、thinkphp5 怎么同时连接mysql和sqlserver 2种数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)