///
Esta questão foi aplicada no ano de 2016 pela banca PUC-PR no concurso para Paranacidade - PR. A questão aborda conhecimentos da disciplina de Desenvolvimento e Arquitetura de Software, especificamente sobre Engenharia de Software.
Esta é uma questão de múltipla escolha com 5 alternativas. Teste seus conhecimentos e selecione a resposta correta.
O código-fonte a seguir utiliza-se da extensão PDO (PHP Data Objects) para acessar e consultar uma base de dados em MySQL.
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=sistema', 'root', '');
$perfil = $_GET['perfil'];
$status = $_GET['status'];
$stmt = $dbh->prepare("SELECT * FROM users WHERE perfil = ? AND status = ?");
$stmt->bindParam(1, $perfil, PDO::PARAM_INT);
$stmt->bindParam(2, $status, PDO::PARAM_STR);
$stmt->execute();
foreach($stmt->fetchAll() as $user) {
print_r($user);
}
} catch (PDOException $e) {
die("Erro ao conectar: " . $e->getMessage() . "<br/>");
}
?>
Sobre as funcionalidades do PDO utilizadas, analise as afirmações a seguir:
I. A utilização do método prepare() inviabiliza ataques via SQL Injection à consulta definida.
II. O comando $stmt->execute() poderia ser substituído por $stmt->query().
III. É possível utilizar também a interface procedural do PDO e não apenas a interface orientada a objetos.
IV. Para conectar a uma base de dados diferente do MySQL, basta alterar o DSN passado para o construtor da classe PDO.
É CORRETO o que se afirma em: