protected function toDialectStringValues($query, Dialect $dialect) { $fields = []; $values = []; foreach ($this->fields as $var => $val) { $fields[] = $dialect->quoteField($var); if ($val === null) { $values[] = $dialect->literalToString(Dialect::LITERAL_NULL); } elseif (true === $val) { $values[] = $dialect->literalToString(Dialect::LITERAL_TRUE); } elseif (false === $val) { $values[] = $dialect->literalToString(Dialect::LITERAL_FALSE); } elseif ($val instanceof DialectString) { $values[] = $val->toDialectString($dialect); } else { $values[] = $dialect->quoteValue($val); } } if (!$fields || !$values) { throw new WrongStateException('what should i insert?'); } $fields = implode(', ', $fields); $values = implode(', ', $values); return $query . "({$fields}) VALUES ({$values})"; }
public function literalToString($literal) { switch ($literal) { case self::LITERAL_FALSE: return $this->quoteValue('0'); case self::LITERAL_TRUE: return $this->quoteValue('1'); } return parent::literalToString($literal); }