function withParameters(&$repository) { $_REQUEST['name'] = 'Jim'; $_SERVER['REQUEST_URI'] = '/api/test'; switch ($_SERVER['REQUEST_METHOD']) { case 'GET': $repository->query(Format::stripWhitespace("SELECT *\n FROM test\n WHERE name=:name"), ['name' => 'Jim'], true)->willReturn(['test_id' => 1, 'name' => 'Jim', 'role' => 'sorter']); break; } return $this; }
public function build() { $join = implode('', $this->join); $where = !empty($this->where) ? implode('', $this->where) : ''; $order = !empty($this->order) ? implode(',', $this->order) : ''; $limit = !empty($this->limit) ? $this->limit : ''; switch ($this->verb) { case 'SELECT': return trim(Format::stripWhitespace("SELECT * FROM {$this->table} {$join} {$where} {$order} {$limit}")); } }
private function buildGetSQL($table) { $cols = $this->getCols(); $sql = "SELECT {$cols}\n FROM {$table}"; $params = array(); if (isset($this->id)) { $sql .= " WHERE {$table}_id=:id"; $params['id'] = $this->id; } else { if (!empty($this->parameters)) { $sql .= " WHERE "; $first = true; foreach ($this->parameters as $key => $value) { if (!$first) { $sql .= " AND "; } else { $first = false; } $sql .= $key; if (is_array($value)) { $sql .= ' IN (' . implode(',', $value) . ')'; } else { $sql .= '=:' . $key; $params[$key] = $value; } } } } return array('sql' => Format::stripWhitespace($sql), 'params' => $params); }