From 6a9b77c8a09e95af9c14f7ccd2c1ca00b1770fd2 Mon Sep 17 00:00:00 2001 From: Stefan Andres Charsley Date: Thu, 29 May 2014 18:38:06 +1200 Subject: Fix for parameter types. --- idiorm.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/idiorm.php b/idiorm.php index 73072e6..0c36b6d 100644 --- a/idiorm.php +++ b/idiorm.php @@ -410,7 +410,20 @@ $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; -- cgit v1.2.3