public function debugSql(string $sql, array $params = []): string
    {
        if ($params) {
            
            $indexed = $params == array_values($params);
            
            foreach ($params as $k => $v) {
                
                if (is_object($v)) {
                    
                    if ($v instanceof \DateTime) {
                        $v = $v->format('Y-m-d H:i:s');
                    } else {
                        continue;
                    }
                } elseif (is_string($v)) {
                    $v = "'$v'";
                } elseif ($v === null) {
                    $v = 'NULL';
                } elseif (is_array($v)) {
                    $v = implode(',', $v);
                }
                
                if ($indexed) {
                    $sql = preg_replace('/\?/', $v, $sql, 1);
                } else {
                    $sql = str_replace($k, $v, $sql);
                }
            }
        }
        
        $sql = str_replace('{db_prefix}', $this->prefix, $sql);
        
        return $sql;
    }