Quote aliases as well

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2017-07-20 20:14:31 +02:00
parent b29baababd
commit 8ec6c1f259
No known key found for this signature in database
GPG key ID: E166FD8976B3BAC8
2 changed files with 24 additions and 10 deletions

View file

@ -560,7 +560,7 @@ class QueryBuilder implements IQueryBuilder {
public function from($from, $alias = null) {
$this->queryBuilder->from(
$this->getTableName($from),
$alias
$this->quoteAlias($alias)
);
return $this;
@ -585,9 +585,9 @@ class QueryBuilder implements IQueryBuilder {
*/
public function join($fromAlias, $join, $alias, $condition = null) {
$this->queryBuilder->join(
$fromAlias,
$this->quoteAlias($fromAlias),
$this->getTableName($join),
$alias,
$this->quoteAlias($alias),
$condition
);
@ -613,9 +613,9 @@ class QueryBuilder implements IQueryBuilder {
*/
public function innerJoin($fromAlias, $join, $alias, $condition = null) {
$this->queryBuilder->innerJoin(
$fromAlias,
$this->quoteAlias($fromAlias),
$this->getTableName($join),
$alias,
$this->quoteAlias($alias),
$condition
);
@ -641,9 +641,9 @@ class QueryBuilder implements IQueryBuilder {
*/
public function leftJoin($fromAlias, $join, $alias, $condition = null) {
$this->queryBuilder->leftJoin(
$fromAlias,
$this->quoteAlias($fromAlias),
$this->getTableName($join),
$alias,
$this->quoteAlias($alias),
$condition
);
@ -669,9 +669,9 @@ class QueryBuilder implements IQueryBuilder {
*/
public function rightJoin($fromAlias, $join, $alias, $condition = null) {
$this->queryBuilder->rightJoin(
$fromAlias,
$this->quoteAlias($fromAlias),
$this->getTableName($join),
$alias,
$this->quoteAlias($alias),
$condition
);
@ -1193,4 +1193,18 @@ class QueryBuilder implements IQueryBuilder {
return $this->helper->quoteColumnName($tableAlias . $column);
}
/**
* Returns the column name quoted and with table alias prefix as needed by the implementation
*
* @param string $alias
* @return string
*/
public function quoteAlias($alias) {
if ($alias === '' || $alias === null) {
return $alias;
}
return $this->helper->quoteColumnName($alias);
}
}

View file

@ -70,7 +70,7 @@ class QuoteHelper {
list($alias, $columnName) = explode('.', $string, 2);
if ($columnName === '*') {
return $string;
return '`' . $alias . '`.*';
}
return '`' . $alias . '`.`' . $columnName . '`';