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;
}