Always use the appropriate wrapping/escaping mechanism when generating SQL to prevent syntax errors and SQL injection vulnerabilities, especially when handling:
protected static function isFunctionalExpression(string $column): bool
{
return preg_match('/\(.+\)/', $column);
}
// Usage when building queries
$columns = collect($command->columns)
->map(fn (string $column) => self::isFunctionalExpression($column) ? $column : $this->wrap($column))
->implode(', ');
// DON'T rely on plain string interpolation
$query = "SELECT $column FROM users";
// DO use the query builder or wrap method
$query = $this->builder->select($this->wrap($column))->from('users');
wrap() method instead of hardcoding quote characters.This practice prevents SQL errors when working with reserved words as column names, functional expressions in indexes, and ensures consistent behavior across different database systems.