Tôi khá mới đối với PDO và tự hỏi liệu truy vấn của tôi dưới đây có an toàn với SQL injection hay không. Tôi sẽ sử dụng phương pháp này trên toàn trang nếu có.Truy vấn PDO của tôi có an toàn khỏi việc tiêm SQL không
// make connection to DB
$db = new PDO('mysql:host='.$dateBaseHost.';dbname='.$dateBaseName, $dateBaseUsername, $dateBasePassword);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//simple query and binding with results
$query = $db->prepare(" SELECT * FROM `profile` WHERE `fullname` = :fullname ");
$search = (isset($_GET['search']) === true) ? $_GET['search'] : '' ; // ? : shorthand for if else
// bind parameters - avoids SQL injection
$query->bindValue(':fullname', $search);
//try... if not catch exception
try {
// run the query
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>', print_r($rows, true),'</pre>';
}
catch (PDOException $e){
sendErrorMail($e->getMessage(), $e->getFile(), $e->getLine());
}
Miễn là bạn đang sử dụng parametrized, truy vấn Truy vấn của bạn an toàn. – Rohitink
Có. Bạn đang sử dụng tham số hóa, thao tác này sẽ tự động thoát cần thiết. Công cụ tuyệt vời! – halfer