改名
This commit is contained in:
@@ -1060,7 +1060,7 @@ abstract class BaseActiveRecord extends Component implements IOrm, ArrayAccess
|
|||||||
{
|
{
|
||||||
return static::getDb()->getSchema()
|
return static::getDb()->getSchema()
|
||||||
->getColumns()
|
->getColumns()
|
||||||
->table('`' . static::getDbName() . '`.' . static::getTable());
|
->table(static::getTable());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-77
@@ -272,87 +272,11 @@ class Connection extends Component
|
|||||||
*/
|
*/
|
||||||
public function createCommand($sql = null, string $dbname = '', array $attributes = []): Command
|
public function createCommand($sql = null, string $dbname = '', array $attributes = []): Command
|
||||||
{
|
{
|
||||||
if (!empty($dbname)) {
|
$command = new Command(['db' => $this, 'sql' => $sql]);
|
||||||
$sql = $this->clear($dbname, $sql);
|
|
||||||
}
|
|
||||||
$command = new Command(['db' => $this, 'sql' => $this->innerJoinMatch($dbname, $sql)]);
|
|
||||||
return $command->bindValues($attributes);
|
return $command->bindValues($attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $dbname
|
|
||||||
* @param $sql
|
|
||||||
* @return array|string|null
|
|
||||||
*/
|
|
||||||
private function clear($dbname, $sql): array|string|null
|
|
||||||
{
|
|
||||||
$substr = strtoupper(substr($sql, 0, 6));
|
|
||||||
return match ($substr) {
|
|
||||||
'SELECT', 'SHOW F', 'DELETE' => $this->selectMatch($dbname, $sql),
|
|
||||||
'UPDATE' => $this->updateMatch($dbname, $sql),
|
|
||||||
'INSERT' => $this->insertMatch($dbname, $sql),
|
|
||||||
'TRUNCA' => $this->truncateMatch($dbname, $sql),
|
|
||||||
default => $sql
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $dbname
|
|
||||||
* @param $sql
|
|
||||||
* @return array|string|null
|
|
||||||
*/
|
|
||||||
private function selectMatch($dbname, $sql): array|string|null
|
|
||||||
{
|
|
||||||
return preg_replace('/FROM\s+(\w+)\s+/', 'FROM `' . $dbname . '`.$1 ', $sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $dbname
|
|
||||||
* @param $sql
|
|
||||||
* @return array|string|null
|
|
||||||
*/
|
|
||||||
private function innerJoinMatch($dbname, $sql): array|string|null
|
|
||||||
{
|
|
||||||
return preg_replace('/(INNER|LEFT|RIGHT) JOIN\s+(\w+)\s/', '$1 JOIN `' . $dbname . '`.$2 ', $sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $dbname
|
|
||||||
* @param $sql
|
|
||||||
* @return array|string|null
|
|
||||||
*/
|
|
||||||
private function updateMatch($dbname, $sql): array|string|null
|
|
||||||
{
|
|
||||||
return preg_replace('/UPDATE\s+(\w+)\s+SET/', 'UPDATE `' . $dbname . '`.$1 SET', $sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $dbname
|
|
||||||
* @param $sql
|
|
||||||
* @return array|string|null
|
|
||||||
*/
|
|
||||||
private function insertMatch($dbname, $sql): array|string|null
|
|
||||||
{
|
|
||||||
return preg_replace('/INSERT INTO\s+(\w+)/', 'INSERT INTO `' . $dbname . '`.$1', $sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $dbname
|
|
||||||
* @param $sql
|
|
||||||
* @return array|string|null
|
|
||||||
*/
|
|
||||||
private function truncateMatch($dbname, $sql): array|string|null
|
|
||||||
{
|
|
||||||
return preg_replace('/TRUNCATE\s+(\w+)\s+/', 'TRUNCATE `' . $dbname . '`.$1', $sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* 回收链接
|
* 回收链接
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ use Database\ActiveRecord;
|
|||||||
use Database\Condition\MathematicsCondition;
|
use Database\Condition\MathematicsCondition;
|
||||||
use Database\Query;
|
use Database\Query;
|
||||||
use Exception;
|
use Exception;
|
||||||
use JetBrains\PhpStorm\Pure;
|
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
use Snowflake\Exception\NotFindClassException;
|
use Snowflake\Exception\NotFindClassException;
|
||||||
use Snowflake\Snowflake;
|
use Snowflake\Snowflake;
|
||||||
@@ -138,7 +137,7 @@ trait QueryTrait
|
|||||||
*/
|
*/
|
||||||
public function getTable(): string
|
public function getTable(): string
|
||||||
{
|
{
|
||||||
return $this->modelClass::getTable();
|
return '`' . $this->modelClass::getDbName() . '`' . $this->modelClass::getTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user