|
@@ -31,9 +31,9 @@ class ConnBase
|
|
|
protected function prepare($sql)
|
|
|
{
|
|
|
$default = "READ";
|
|
|
- $readMode = "/^SELECT\s/u";
|
|
|
- $writeMode = "/^(UPDATE)|(REPLACE)|(DELETE)\s/u";
|
|
|
- $isRead = preg_match($readMode, $sql);
|
|
|
+ //$readMode = "/^SELECT\s/u";
|
|
|
+ $writeMode = "/^(UPDATE)|(REPLACE)|(DELETE)|(INSERT)\s/u";
|
|
|
+ //$isRead = preg_match($readMode, $sql);
|
|
|
$isWrite = preg_match($writeMode, $sql);
|
|
|
if ($isWrite) $default = "WRITE";
|
|
|
if (!isset($this->allowExec[$default])) $default = 'WRITE';
|
|
@@ -49,15 +49,24 @@ class ConnBase
|
|
|
public function getConnectionBySQL($sql)
|
|
|
{
|
|
|
$default = $this->prepare($sql);
|
|
|
+ echo "1.". $sql ."\n";
|
|
|
if (isset($this->_connections[$default])) return $this->_connections[$default];
|
|
|
switch ($default) {
|
|
|
case 'READ':
|
|
|
- return $this->_connections[$default] = $this->getReadConnection();
|
|
|
+ $connection = $this->_connections['READ'] = $this->getReadConnection();
|
|
|
break;
|
|
|
default:
|
|
|
- return $this->_connections['WRITE'] = $this->getWriteConnection();
|
|
|
+ $connection = $this->_connections['WRITE'] = $this->getWriteConnection();
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ if(get_called_class() == 'Qii\Driver\Pdo\Connection'){
|
|
|
+ echo "2.". $sql ."\n";
|
|
|
+ $connection->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
|
|
|
+ $connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING);
|
|
|
+ $connection->query('set names utf8');
|
|
|
+ }
|
|
|
+ return $connection;
|
|
|
throw new \Exception('Call undefined driver', __LINE__);
|
|
|
}
|
|
|
}
|