/** * @param array $parameters * * @return static * @throws Exception */ public function execute($parameters = null) { if ($parameters !== null) { $parameters = array_intersect_key($parameters, $this->types); foreach ($this->placeholders as $i => $name) { $value =& $parameters[$name]; if ($value === null) { $this->bindValue($i + 1, null, Connection::PARAM_NULL); } else { $type =& $this->types[$name]; if ($type === Connection::PARAM_INT) { $value = (int) $value; } elseif ($type === Connection::PARAM_DATE_TIME) { $value = $this->grammar->buildDateTime($value); $type = Connection::PARAM_STR; } elseif ($type === Connection::PARAM_TIME) { $value = $this->grammar->buildTime($value); $type = Connection::PARAM_STR; } $this->bindValue($i + 1, $value, $type); } } } parent::execute(); return $this; }
public function testBuildDateTime() { $date = new \DateTime(); $expected = $date->format(Grammar::DATE_TIME_FORMAT); $this->assertEquals($expected, $this->grammar->buildDateTime($date)); $this->assertEquals($expected, $this->grammar->buildDateTime($date->getTimestamp())); $this->assertEquals($expected, $this->grammar->buildDateTime($expected)); $this->setExpectedException('InvalidArgumentException'); $this->grammar->buildDateTime([]); }