6 Commits

2 changed files with 27 additions and 3 deletions

View File

@ -65,7 +65,7 @@ abstract class Insert extends Query implements InsertInterface
}
public function addValue(int|string $value): InsertInterface
{
if (!is_numeric($value)) {
if (!is_numeric($value) and $value !== '?') {
$value = "'{$value}'";
}
$this->values []= $value;

View File

@ -105,7 +105,19 @@ abstract class Select extends Query implements SelectInterface
}
public function getJoinString(): string
{
return implode(' ', $this->getJoins());
$str = [];
foreach ($this->getJoins() as $i => $join) {
if ($i === 0) {
$str []= $join;
continue;
}
if (!str_contains(strtolower($join), 'join')) {
$str []= "JOIN {$join}";
continue;
}
$str []= $join;
}
return implode(' ', $str);
}
protected array $conditions;
public function setConditions(array $conditions): SelectInterface
@ -126,7 +138,19 @@ abstract class Select extends Query implements SelectInterface
}
public function getConditionString(): string
{
return implode(' ', $this->getConditions());
$str = [];
foreach ($this->getConditions() as $i => $condition) {
if ($i === 0) {
$str []= $condition;
continue;
}
if (!str_contains(strtolower($condition), 'and') and !str_contains(strtolower($condition), 'or')) {
$str []= "AND {$condition}";
continue;
}
$str []= $condition;
}
return implode(' ', $str);
}
protected array $groups;
public function setGroups(array $groups): SelectInterface