/** * Faz o parse do valor para SQL * * @author Hugo Ferreira da Silva * @link http://www.hufersil.com.br/ * @param Lumine_Base|array $obj * @param mixed $val * @param string $type * @param boolean $islike * @return mixed */ public static function getParsedValue($obj, $val, $type, $islike = false, $usingDefault = false) { if (is_null($val) == true) { return 'NULL'; } // se esta informando atraves de um valor padrao if ($usingDefault && !is_array($val) && !is_object($val)) { // pegamos o prefixo do valor $prefix = substr($val, 0, strlen(Lumine::DEFAULT_VALUE_FUNCTION_IDENTIFIER)); // se for para ser aplicado como uma funcao do banco if ($prefix == Lumine::DEFAULT_VALUE_FUNCTION_IDENTIFIER) { // removemos o prefixo e devolvemos o valor que sera usado como funcao return str_replace($prefix, '', $val); } } switch ($type) { case 'smallint': case 'int': case 'integer': $val = sprintf('%d', $val); break; case 'float': case 'double': $val = sprintf('%f', $val); break; case 'date': /* if(is_numeric($val)) { $val = "'" . date('Y-m-d', $val) . "'"; } else { $val = "'" . date('Y-m-d', strtotime($val)) . "'"; }*/ $val = "'" . Lumine_Util::FormatDate($val, '%Y-%m-%d') . "'"; break; case 'datetime': /* if(is_numeric($val)) { $val = "'" . date('Y-m-d H:i:s', $val) . "'"; } else { $val = "'" . date('Y-m-d H:i:s', strtotime($val)) . "'"; } */ $val = "'" . Lumine_Util::FormatDateTime($val, '%Y-%m-%d %H:%M:%S') . "'"; break; case 'time': $val = Lumine_Util::FormatTime($val, '%H:%M:%S'); $val = "'" . $val . "'"; break; case 'boolean': $val = sprintf("'%d'", $val); break; case 'string': case 'text': case 'varchar': case 'char': default: if ($islike == true) { $val = "'%" . $obj->_getConnection()->escape($val) . "%'"; } else { $val = "'" . $obj->_getConnection()->escape($val) . "'"; } break; } return $val; }