测试SQL注入但导致错误?

时间:2014-04-20 12:04:54

标签: php mysql compiler-errors sql-injection

我知道参数化语句和转义数据是防止SQL注入的好习惯。但我很想看到它在行动,所以我建立了一个数据库来看。问题是我一直收到错误或没有正确注入。

$ans = $_POST['answer'];
$query = "SELECT username from `members` where password = '$ans'";
$c = $db ->query($query);
$c=$c->fetch(PDO::FETCH_ASSOC);
echo $c['username'];

我尝试了典型的&1;或1 = 1'注射及其变化,我不断提出取消错误或根本不工作。

1 个答案:

答案 0 :(得分:-2)

$sql="SELECT username from `members` where password = :mypassword";

// Create prepared statement
$stm = $db->prepare($sql);
$stm->bindParam(':mypassword', $ans, PDO::PARAM_STR);
$stm->execute();

echo $stm->fetchColumn();