Tôi nhận được điều này:Mảng tìm nạp MySQL thêm các giá trị trùng lặp?
Array
(
[0] => 1
[id] => 1
[1] => 778613c4344dbc9565c359c1154c6a18
[session] => 778613c4344dbc9565c359c1154c6a18
[2] => fn
[first_name] => fn
[3] => ln
[last_name] => ln
[4] => un
[username] => un
[5] => 016e6128e8ca9dda1b310c364d9b622c
[password] => 016e6128e8ca9dda1b310c364d9b622c
[6] => address
[email] => address
[7] => 100
[permission] => 100
[8] => 10
[year_level] => 10
[9] =>
[department] =>
[10] => Sample
[campus] => Sample
[11] => 0
[logo_url] => 0
)
Sau khi chạy này
$user = mysql_fetch_array(mysql_query("SELECT session FROM users WHERE username='$cookie[username]' AND first_name='$cookie[first_name]' AND last_name='$cookie[last_name]' AND campus='$cookie[campus]' AND id='$cookie[id]'"))
Bất cứ ý tưởng tại sao nó được sao chép như thế này? Cảm ơn
EDIT: Tôi nghĩ rằng khóa chính đang thực hiện việc này. Bất kỳ ý tưởng về làm thế nào để ngăn chặn nó?
-1 để lặp lại những điều vô nghĩa cũ. thoát không có gì để làm với SQL Injection nhưng thoát khỏi mindless "giá trị" sẽ làm cho tiêm khá tốt. –
Vâng, đảm bảo dữ liệu được chèn vào các truy vấn SQL là * an toàn * phải làm với SQL Injection; và thoát chuỗi là một cách để đảm bảo rằng những người đang * an toàn *; Tuy nhiên, tôi thừa nhận tôi có thể đã thêm rằng cùng một ý tưởng nên được áp dụng cho các giá trị không phải chuỗi, như số nguyên * (đảm bảo chúng thực sự chứa số nguyên, với 'intval()' chẳng hạn) * –
một ảo tưởng cũ một lần nữa. thoát không làm cho dữ liệu * "an toàn" *. nó chỉ là một định dạng. Và chắc chắn bạn phải sử dụng nó (cho dây) không cho bất cứ điều gì an toàn nhưng chỉ để giữ cho SQL của bạn nhất quán.Số nguyên không phải là trường hợp đơn lẻ, định danh là một ví dụ khác về sự vô dụng hoàn toàn và vô dụng của việc thoát ra được coi là "giá trị" "an toàn" –