-2
我知道應該使用PDO準備語句來避免SQL注入。它必須始終有這種格式:PDO準備語句
$stmt = $db->prepare('SELECT * FROM table where id = :id');
$stmt->execute(array(':id' => $_GET['id']));
或將以下任何格式否定SQL注入?
VERSION 1
$queryString = "SELECT * FROM table WHERE id = ".$_GET['id'];
$stmt= $db->prepare($queryString);
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
VERSION 2
$stmt = $db->query("SELECT * FROM table WHERE id = ".$_GET['id']);
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
通過在字符串中插入id,您有點否定以PDO的方式添加參數的要點。這兩個例子可能會工作 - 你可以更容易地測試這個 - 但是第一個是真正唯一一個可以防止注入的地方 –
這個代碼可以工作嗎?你試過了嗎? – Jessica
綁定參數用於避免sql注入未準備語句 – Musa