3 Commits

Author SHA1 Message Date
3b1902ed1a Include AND when not specified in condition 2022-09-12 20:59:27 -03:00
e7ab3fb8b7 FIX: ? placeholder was quoted 2022-09-09 15:42:07 -04:00
d4fecf977d Don't quote ? placeholder 2022-09-09 15:37:50 -04:00
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('and ', strtolower($join)) and !str_contains('or ', strtolower($join))) {
$str []= "AND {$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('and ', strtolower($condition)) and !str_contains('or ', strtolower($condition))) {
$str []= "AND {$condition}";
continue;
}
$str []= $condition;
}
return implode(' ', $str);
}
protected array $groups;
public function setGroups(array $groups): SelectInterface