mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-11 17:58:41 +00:00
Handle empty table name in where clause
This commit is contained in:
parent
1caf381603
commit
de2fdb61bc
|
|
@ -281,10 +281,15 @@ class Grammar extends GrammarAbstract
|
|||
$expression = '';
|
||||
|
||||
if (!$first) {
|
||||
$expression = ' ' . strtoupper($element['boolean']) . ' ';
|
||||
$expression = ' ' . \strtoupper($element['boolean']) . ' ';
|
||||
}
|
||||
|
||||
if (is_string($element['column'])) {
|
||||
if (\is_string($element['column'])) {
|
||||
// handle bug when no table is specified in the where column
|
||||
if (count($query->from) === 1 && \stripos($element['column'], '.') === false) {
|
||||
$element['column'] = $query->from[0] . '.' . $element['column'];
|
||||
}
|
||||
|
||||
$expression .= $this->compileSystem($element['column'], $query->getPrefix());
|
||||
} elseif ($element['column'] instanceof \Closure) {
|
||||
$expression .= $element['column']();
|
||||
|
|
@ -297,9 +302,9 @@ class Grammar extends GrammarAbstract
|
|||
// todo: handle IN(...) as operator
|
||||
|
||||
if (isset($element['value'])) {
|
||||
$expression .= ' ' . strtoupper($element['operator']) . ' ' . $this->compileValue($query, $element['value'], $query->getPrefix());
|
||||
$expression .= ' ' . \strtoupper($element['operator']) . ' ' . $this->compileValue($query, $element['value'], $query->getPrefix());
|
||||
} else {
|
||||
$operator = strtoupper($element['operator']) === '=' ? 'IS' : 'IS NOT';
|
||||
$operator = \strtoupper($element['operator']) === '=' ? 'IS' : 'IS NOT';
|
||||
$expression .= ' ' . $operator . ' ' . $this->compileValue($query, $element['value'], $query->getPrefix());
|
||||
}
|
||||
|
||||
|
|
@ -327,29 +332,29 @@ class Grammar extends GrammarAbstract
|
|||
*/
|
||||
protected function compileValue(Builder $query, $value, string $prefix = '') : string
|
||||
{
|
||||
if (is_string($value)) {
|
||||
if (strpos($value, ':') === 0) {
|
||||
if (\is_string($value)) {
|
||||
if (\strpos($value, ':') === 0) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
return $query->quote($value);
|
||||
} elseif (is_int($value)) {
|
||||
} elseif (\is_int($value)) {
|
||||
return (string) $value;
|
||||
} elseif (is_array($value)) {
|
||||
} elseif (\is_array($value)) {
|
||||
$values = '';
|
||||
|
||||
foreach ($value as $val) {
|
||||
$values .= $this->compileValue($query, $val, $prefix) . ', ';
|
||||
}
|
||||
|
||||
return '(' . rtrim($values, ', ') . ')';
|
||||
return '(' . \rtrim($values, ', ') . ')';
|
||||
} elseif ($value instanceof \DateTime) {
|
||||
return $query->quote($value->format('Y-m-d H:i:s'));
|
||||
} elseif ($value === null) {
|
||||
return 'NULL';
|
||||
} elseif (is_bool($value)) {
|
||||
} elseif (\is_bool($value)) {
|
||||
return (string) ((int) $value);
|
||||
} elseif (is_float($value)) {
|
||||
} elseif (\is_float($value)) {
|
||||
return (string) $value;
|
||||
} elseif ($value instanceof Column) {
|
||||
return $this->compileSystem($value->getColumn(), $prefix);
|
||||
|
|
@ -411,7 +416,7 @@ class Grammar extends GrammarAbstract
|
|||
$expression .= $this->compileSystem($group, $query->getPrefix()) . ', ';
|
||||
}
|
||||
|
||||
$expression = rtrim($expression, ', ');
|
||||
$expression = \rtrim($expression, ', ');
|
||||
|
||||
return 'GROUP BY ' . $expression;
|
||||
}
|
||||
|
|
@ -435,7 +440,7 @@ class Grammar extends GrammarAbstract
|
|||
$expression .= $this->compileSystem($column, $query->getPrefix()) . ', ';
|
||||
}
|
||||
|
||||
$expression = rtrim($expression, ', ');
|
||||
$expression = \rtrim($expression, ', ');
|
||||
$expression .= ' ' . $key . ', ';
|
||||
}
|
||||
|
||||
|
|
@ -443,7 +448,7 @@ class Grammar extends GrammarAbstract
|
|||
return '';
|
||||
}
|
||||
|
||||
$expression = rtrim($expression, ', ');
|
||||
$expression = \rtrim($expression, ', ');
|
||||
|
||||
return 'ORDER BY ' . $expression;
|
||||
}
|
||||
|
|
@ -495,7 +500,7 @@ class Grammar extends GrammarAbstract
|
|||
return '';
|
||||
}
|
||||
|
||||
return '(' . rtrim($cols, ', ') . ')';
|
||||
return '(' . \rtrim($cols, ', ') . ')';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -520,7 +525,7 @@ class Grammar extends GrammarAbstract
|
|||
return '';
|
||||
}
|
||||
|
||||
return 'VALUES ' . rtrim($vals, ', ');
|
||||
return 'VALUES ' . \rtrim($vals, ', ');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -548,6 +553,6 @@ class Grammar extends GrammarAbstract
|
|||
return '';
|
||||
}
|
||||
|
||||
return 'SET ' . rtrim($vals, ', ');
|
||||
return 'SET ' . \rtrim($vals, ', ');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user