Chúng tôi có nhiều khả năng đang xử lý các chuỗi ở đây, vì vậy các biến trong giá trị của bạn cần được trích dẫn.
WHERE ens_cin='$login' AND ens_pass='$password'";
Ngoài ra, việc chỉ sử dụng PDO của riêng nó, không có nghĩa là bạn an toàn trước SQL injection.
Thông tin chi tiết:
Đảm bảo rằng bạn thực sự đang kết nối qua PDO chứ không phải mysqli_
. Tôi thấy những loại câu hỏi này thường xuyên.
Nếu đúng như vậy, các API MySQL khác nhau đó không trộn lẫn với nhau.
Bây giờ là:
$password=$_GET["password"];
Chuyển mật khẩu qua GET cũng không an toàn; bạn không biết ai có thể đang "lắng nghe". Bạn nên sử dụng POST. Tôi cũng hy vọng rằng bạn đang sử dụng hàm băm chứ không phải văn bản thuần túy để lưu trữ mật khẩu.
Ghi chú bên lề:Đảm bảo rằng bạn thực sự đang sử dụng GET và không bị trộn lẫn với POST, nếu điều này đến từ một biểu mẫu HTML.
Có thể bạn đang không kiểm tra lỗi.
Thêm $idconnex->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
ngay sau khi kết nối được mở.
Thêm báo cáo lỗi lên đầu (các) tệp của bạn, điều này sẽ giúp tìm ra lỗi.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Chú thích bên lề: Báo cáo lỗi chỉ nên được thực hiện theo giai đoạn và không bao giờ được thực hiện trong quá trình sản xuất.