phpDataMapper_Query::params PHP Méthode

params() public méthode

Return array of parameters in key => value format
public params ( ) : array
Résultat array Parameters in key => value format
    public function params()
    {
        $params = array();
        foreach ($this->conditions as $i => $data) {
            if (isset($data['conditions']) && is_array($data['conditions'])) {
                foreach ($data['conditions'] as $field => $value) {
                    $params[$field] = $value;
                }
            }
        }
        return $params;
    }

Usage Example

Exemple #1
0
 /**
  * Build a select statement in SQL
  * Can be overridden by adapters for custom syntax
  *
  * @todo Add support for JOINs
  */
 public function read(phpDataMapper_Query $query)
 {
     $conditions = $this->statementConditions($query->conditions);
     $binds = $this->statementBinds($query->params());
     $order = array();
     if ($query->order) {
         foreach ($query->order as $oField => $oSort) {
             $order[] = $oField . " " . $oSort;
         }
     }
     $sql = "\n\t\t\tSELECT " . $this->statementFields($query->fields) . "\n\t\t\tFROM " . $query->source . "\n\t\t\t" . ($conditions ? 'WHERE ' . $conditions : '') . "\n\t\t\t" . ($query->group ? 'GROUP BY ' . implode(', ', $query->group) : '') . "\n\t\t\t" . ($order ? 'ORDER BY ' . implode(', ', $order) : '') . "\n\t\t\t" . ($query->limit ? 'LIMIT ' . $query->limit : '') . " " . ($query->limit && $query->limitOffset ? 'OFFSET ' . $query->limitOffset : '') . "\n\t\t\t";
     // Unset any NULL values in binds (compared as "IS NULL" and "IS NOT NULL" in SQL instead)
     if ($binds && count($binds) > 0) {
         foreach ($binds as $field => $value) {
             if (null === $value) {
                 unset($binds[$field]);
             }
         }
     }
     // Add query to log
     phpDataMapper::logQuery($sql, $binds);
     // Prepare update query
     $stmt = $this->connection()->prepare($sql);
     if ($stmt) {
         // Execute
         if ($stmt->execute($binds)) {
             $result = $this->toCollection($query, $stmt);
         } else {
             $result = false;
         }
     } else {
         $result = false;
     }
     return $result;
 }