| Conditions | 5 | 
| Paths | 9 | 
| Total Lines | 18 | 
| Code Lines | 7 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
| 1 | <?php  | 
            ||
| 23 | protected function binding(string $sql, array $params) : string  | 
            ||
| 24 |     { | 
            ||
| 25 | // sort by key length (make correct of ":test,:test2")  | 
            ||
| 26 |         uksort($params, static function ($a, $b) { | 
            ||
| 27 | return strlen($b) - strlen($a);  | 
            ||
| 28 | });  | 
            ||
| 29 | |||
| 30 | // prepare slots  | 
            ||
| 31 |         foreach ($params as $name => $data) { | 
            ||
| 32 |             is_scalar($data) && $sql = str_ireplace([":{$name}", "?{$name}"], sprintf($this->pbks, $name), $sql); | 
            ||
| 33 | }  | 
            ||
| 34 | |||
| 35 | // data replaced  | 
            ||
| 36 |         foreach ($params as $name => $data) { | 
            ||
| 37 | is_scalar($data) && $sql = str_ireplace(sprintf($this->pbks, $name), '"'.$this->escape($data).'"', $sql);  | 
            ||
| 
                                                                                                    
                        
                         | 
                |||
| 38 | }  | 
            ||
| 39 | |||
| 40 | return $sql;  | 
            ||
| 41 | }  | 
            ||
| 43 |