public static function prepareExecute($query, $args) { $cleanArgs = array(); if (!is_array($args)) { $cleanArgs = array($args); } else { foreach ($args as $arg) { $cleanArgs[] = $arg; } } $explodingBinds = array(); foreach ($cleanArgs as $key => $arg) { if (is_array($arg) && count($arg) > 1) { $explodingBinds[$key] = count($arg); } else { if (is_array($arg)) { $cleanArgs[$key] = array_key_exists(0, $arg) ? $arg[0] : NULL; } } } if (count($explodingBinds) > 0) { $query = self::_explodePreparedQuery($query, $explodingBinds); $cleanArgs = self::_flattenParams($cleanArgs); //Rd_Debug::out('Attempting to expand parameters...'); //Rd_Debug::outData(array($query,$args)); } $statement = self::$_connection->prepare($query); // Rd_Debug::outData(array($query,$cleanArgs)); if ($statement) { $statement->execute($cleanArgs); if ('00000' != $statement->errorCode() && Rd_Debug::isEnabled()) { throw new Exception('OH HI! Bad Query Detected. HERE IZ UR STACK TRACE. GO FIXZORZ ET PEWPEW!'); } } return $statement; }
protected static function _get($name, $source) { if (0 == count($name)) { return $source; } $newSourceName = array_shift($name); if (is_array($source) && array_key_exists($newSourceName, $source)) { return self::_get($name, $source[$newSourceName]); } else { if (is_object($source) && property_exists($source, $newSourceName)) { return self::_get($name, $source->{$newSourceName}); } } throw new Exception(self::$_unavailableExceptionMessage . (Rd_Debug::isEnabled() ? "({$name})" : '')); }