diff --git a/idiorm.php b/idiorm.php index 73072e6f..0c36b6d9 100644 --- a/idiorm.php +++ b/idiorm.php @@ -410,7 +410,20 @@ protected static function _execute($query, $parameters = array(), $connection_na $statement = self::get_db($connection_name)->prepare($query); self::$_last_statement = $statement; $time = microtime(true); - $q = $statement->execute($parameters); + + $count = count($parameters); + for ($i = 0; $i < $count; $i++) { + $type = PDO::PARAM_STR; + if (is_null($parameters[i])) $type = PDO::PARAM_NULL; + if (is_bool($parameters[i])) $type = PDO::PARAM_BOOL; + if (is_numeric($parameters[i])) { + $type = PDO::PARAM_INT; + $parameters[$i] = +($parameters[$i]); + } + $statement->bindParams($i + 1, $parameters[$i], $type); + } + + $q = $statement->execute(); self::_log_query($query, $parameters, $connection_name, (microtime(true)-$time)); return $q;