public function createPDOStatement($dbHandle, $sql, $boundValues, $queryString) { $pdoStatement = $dbHandle->prepare($sql); if (!$pdoStatement) { throw PDOExceptionExtractor::getException($dbHandle->errorInfo(), $queryString); } foreach ($boundValues as $key => $valueBind) { $type = ParameterType::getType($valueBind); $pdoStatement->bindValue($key + 1, $valueBind, $type); } try { if (!$pdoStatement->execute()) { throw PDOExceptionExtractor::getException($pdoStatement->errorInfo(), $queryString); } } catch (PDOException $exception) { $errorInfo = array($exception->getCode(), $exception->getCode(), $exception->getMessage()); throw PDOExceptionExtractor::getException($errorInfo, $queryString); } return $pdoStatement; }