protected static function _execute($query, $parameters = array(), $connection_name = self::DEFAULT_CONNECTION)
{
$statement = self::get_db($connection_name)->prepare($query);
self::$_last_statement = $statement;
$time = microtime(true);
foreach ($parameters as $key => &$param) {
if (is_null($param)) {
$type = PDO::PARAM_NULL;
} else {
if (is_bool($param)) {
$type = PDO::PARAM_BOOL;
} else {
if (is_int($param)) {
$type = PDO::PARAM_INT;
} else {
$type = PDO::PARAM_STR;
}
}
}
$statement->bindParam(is_int($key) ? ++$key : $key, $param, $type);
}
$q = $statement->execute();
self::_log_query($query, $parameters, $connection_name, microtime(true) - $time);
return $q;
}