mysqli_real_escape_string()
YÊU CẦU bạn có kết nối đang hoạt động / được thiết lập với DB. Vì bạn đang làm m_r_e_s()
gọi TRƯỚC KHI bạn kết nối, bạn sẽ chỉ nhận được boolean FALSE để báo hiệu sự thất bại. Vì vậy, bạn đang chuyển các giá trị "được trích dẫn" của mình vào thùng rác.
Các giá trị sai boolean được chèn vào một chuỗi chỉ được chuyển đổi thành các chuỗi trống, vì vậy các truy vấn của bạn bắt đầu trông giống như
SELECT ... WHERE username=''
^---see the boolean false in there?
Chuỗi mã của bạn phải là:
session_start();
connect_to_db();
prepare_variables();
do_query();
Và vì bạn đang sử dụng mysqli, tại sao bạn luôn thoát các biến theo cách thủ công? Bạn chỉ có thể sử dụng một câu lệnh đã chuẩn bị sẵn + trình giữ chỗ và hoàn toàn bỏ qua vấn đề.