This commit is contained in:
as2252258@163.com
2021-07-03 14:14:46 +08:00
parent 7a39375657
commit de475736ba
5 changed files with 27 additions and 16 deletions
+5 -5
View File
@@ -263,14 +263,14 @@ class Connection extends Component
* @return Command
* @throws
*/
public function createCommand($sql = null, array $attributes = []): Command
public function createCommand($sql = null, $dbname = '', array $attributes = []): Command
{
$substr = strtoupper(substr($sql, 0, 6));
$sql = match ($substr) {
'SELECT', 'SHOW F', 'DELETE' => preg_replace('/FROM\s+(\w+)\s+/', 'FROM `' . $this->database . '`.$1 ', $sql),
'UPDATE' => preg_replace('/UPDATE\s+(\w+)\s+SET/', 'UPDATE `' . $this->database . '`.$1 SET', $sql),
'INSERT' => preg_replace('/INSERT INTO\s+(\w+)\s+/', 'INSERT INTO `' . $this->database . '`.$1', $sql),
'TRUNCA' => preg_replace('/TRUNCATE\s+(\w+)\s+/', 'TRUNCATE `' . $this->database . '`.$1', $sql),
'SELECT', 'SHOW F', 'DELETE' => preg_replace('/FROM\s+(\w+)\s+/', 'FROM `' . $dbname . '`.$1 ', $sql),
'UPDATE' => preg_replace('/UPDATE\s+(\w+)\s+SET/', 'UPDATE `' . $dbname . '`.$1 SET', $sql),
'INSERT' => preg_replace('/INSERT INTO\s+(\w+)\s+/', 'INSERT INTO `' . $dbname . '`.$1', $sql),
'TRUNCA' => preg_replace('/TRUNCATE\s+(\w+)\s+/', 'TRUNCATE `' . $dbname . '`.$1', $sql),
default => throw new Exception('database error')
};
$command = new Command(['db' => $this, 'sql' => $sql]);