tp5 设置主从库的模式下不好用

浏览:2512 发布日期:2016/11/16 分类:求助交流 关键字: thinkphp5 分布式数据库
跟了下代码,是不是有bug呢,两个库设置一样,主从库和从库的配置都能正确读取到,但是查询语句,再最后执行安全验证的时候,默认的master=true,这样导致,数据库链接又被重置会主库了,这样后面的查询都在主库上进行了。简单贴下代码,不知道是不是这样
public function query($sql, $bind = [], $master = false, $class = false)
{
$this->initConnect($master);
if (!$this->linkID) {
return false;
}
// 根据参数绑定组装最终的SQL语句
$this->queryStr = $this->getRealSql($sql, $bind);

//释放前次的查询结果
if (!empty($this->PDOStatement)) {
$this->free();
}

}

public function getRealSql($sql, array $bind = [])
{
if ($bind) {
foreach ($bind as $key => $val) {
$value = is_array($val) ? $val[0] : $val;
$type = is_array($val) ? $val[1] : PDO::PARAM_STR;
if (PDO::PARAM_STR == $type) {
$value = $this->quote($value);
} elseif (PDO::PARAM_INT == $type && '' === $value) {
$value = 0;
}
}}

public function quote($str, $master = true)
{
$this->initConnect($master);
return $this->linkID ? $this->linkID->quote($str) : $str;
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>