Với đoạn mã sau đây, tôi có cần phải thoát và vệ sinh $city
?Tôi có cần phải khử trùng đầu vào nếu sử dụng các truy vấn PHP/MySQL chuẩn bị không?
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
/* fetch value */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
?>
Bạn có cần vệ sinh mọi đầu vào khi sử dụng truy vấn đã chuẩn bị không?
Cây cối bị cản trở trên gỗ. ;) –
Có, nhưng các câu lệnh chuẩn bị thường yêu cầu nhiều tài nguyên hơn ở cả lớp ứng dụng và lớp dữ liệu - hãy cẩn thận khi bạn thấy ai đó nói, "luôn luôn sử dụng câu lệnh đã chuẩn bị". – Jmoney38
@ Jmoney38 Phát hiện ra, tôi nghĩ mọi giải pháp nên được suy nghĩ cẩn thận thay vì chỉ chọn nó vì nó có vẻ là thực tế phổ biến. – Sander