24 lines
		
	
	
		
			563 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			563 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Core\Driver\SQL\Expression;
 | |
| 
 | |
| use Core\Driver\SQL\SQL;
 | |
| 
 | |
| class Count extends Alias {
 | |
|   public function __construct(mixed $value = "*", string $alias = "count") {
 | |
|     parent::__construct($value, $alias);
 | |
|   }
 | |
| 
 | |
|   function addValue(SQL $sql, array &$params): string {
 | |
|     $value = $this->getValue();
 | |
|     if (is_string($value)) {
 | |
|       if ($value === "*") {
 | |
|         return "COUNT(*)";
 | |
|       } else {
 | |
|         return "COUNT(" . $sql->columnName($value) . ")";
 | |
|       }
 | |
|     } else {
 | |
|       return "COUNT(" . $sql->addValue($value, $params) . ")";
 | |
|     }
 | |
|   }
 | |
| } |