Om de een of andere reden moeten we ook ontsnappen aan een backslash ook.
Dus de juiste code zou zijn, geloof ik
if(isset($_GET['q'])){
$_GET['q'] = trim($_GET['q']);
if(strlen($_GET['q']) >= 2){
$q = $_GET['q'];
$q = '%'.addCslashes($q, '\%_').'%';
// now we have the value ready either for escaping or binding
$q = mysql_real_escape_string($q);
$sql = "SELECT name, age, address FROM book WHERE name LIKE '$q'";
//or
$sql = "SELECT name, age, address FROM book WHERE name LIKE ?";
$stm = $pdo->prepare($sql);
$stm->execute(array($q));
$data = $stm->fetchAll();
}
}
Gebruik voor de uitvoer
echo htmlspecialchars($_GET['q']);
stripswimpers zijn hier niet nodig.
magische aanhalingstekens zullen uw veiligheid niet schaden als u ze niet gebruikt.
charset is gevaarlijk in het geval van enkele uiterst zeldzame coderingen, maar alleen als ze onjuist zijn ingesteld. if mysql(i)_set_charset
of DSN (in het geval van BOB) werden voor dit doel gebruikt - u bent weer veilig.
Wat betreft BOB, een tag-wiki zou genoeg moeten zijn om mee te beginnen, denk ik