Nếu (mysqli_num_rows ($ kết quả 0 lỗi))
Mysqli_num_rows() dự kiến tham số 1 là mysqli_result là một trong những loại lỗi cơ bản nhất xảy ra trong PHP khi sử dụng các hàm MySQLi Show Mục lục Cảnh báo. Mysqli_num_rows() Yêu cầu Tham số 1 là Mysqli_resultNếu bạn gặp phải lỗi này, đừng hoảng sợ; . Về cơ bản, “mysqli_num_rows() mong đợi tham số 1 là mysqli_result” là một cảnh báo xảy ra khi tìm nạp dữ liệu bằng các hàm MySQLi Khi chúng ta sử dụng hàm mysqli_query() với truy vấn SELECT, nó sẽ trả về một số dữ liệu kết quả từ cơ sở dữ liệu. Chúng ta có thể sử dụng hàm mysqli_fetch_array() hoặc mysqli_fetch_assoc() để tìm nạp mọi hàng kết quả Thí dụ Ta có một bảng sinh viên gồm 2 cột id và name. ” và chúng tôi có mã PHP để lấy tên sinh viên như bên dưới
Nếu ta muốn tìm tên sinh viên có id là '1' thì sẽ hiển thị kết quả như bên dưới đầu ra
Đoạn mã PHP trên đúng vì có trường có ‘id’ = 1 Bây giờ, nếu chúng tôi cố gắng lấy tên trong đó 'id' = 4 Ở đây xảy ra sự cố về 'Cảnh báo. Mysqli_num_rows() Yêu cầu Tham số 1 là Mysqli_result‘ Cảnh báo này có thể xuất hiện trên trang PHP của bạn hoặc trong lỗi. tệp nhật ký; Giải phápNhư chúng ta có thể hiểu từ lời giải thích ở trên rằng mysqli_query() không trả về dữ liệu nào vì không có bản ghi dữ liệu nào tồn tại với 'id' = 4 nhưng chương trình vẫn tiếp tục và chạy truy vấn tiếp theo của mysqli_fetch_assoc(), truy vấn này mong đợi ít nhất một hàng trong $ Để giải quyết vấn đề đó, chúng tôi chỉ cần kiểm tra số lượng kết quả và chỉ tìm nạp dữ liệu nếu có ít nhất 1 hàng trong dữ liệu kết quả Thêm một quan sát nữa, bạn dường như lưu trữ mật khẩu dưới dạng văn bản thuần túy. Điều này không bao giờ nên được thực hiện. Để xử lý mật khẩu đúng cách, hãy xem Lưu trữ mật khẩu. Làm thế nào để làm nó. [^] Thêm giải pháp của bạn ở đây B I U S small BIG code Xem trước 0thành viên hiện cóhoặc tham gia với chúng tôiTải xuống, Bình chọn, Nhận xét, Xuất bản Email của bạnEmail này đang được sử dụng. Bạn có cần mật khẩu của bạn? Mật khẩu tùy chọnKhi trả lời một câu hỏi xin vui lòng
Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code (CPOL) Và không bao giờ nối chuỗi để tạo lệnh SQL. Nó khiến bạn dễ bị tấn công SQL Injection vô tình hoặc cố ý có thể phá hủy toàn bộ cơ sở dữ liệu của bạn. Thay vào đó, hãy luôn sử dụng Truy vấn được tham số hóa Khi bạn nối các chuỗi, bạn sẽ gặp sự cố vì SQL nhận các lệnh như SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'Trích dẫn mà người dùng đã thêm sẽ chấm dứt chuỗi khi có liên quan đến SQL và bạn gặp sự cố. Nhưng nó có thể tồi tệ hơn. Nếu tôi đi cùng và gõ cái này thay vào đó. "x';DROP TABLE MyTable;--" Sau đó, SQL nhận được một lệnh rất khác SQL nào được coi là ba lệnh riêng biệt. SELECT * FROM MyTable WHERE StreetAddress = 'x';Một lệnh SELECT hoàn toàn hợp lệ SELECT DROP TABLE MyTable;Một lệnh "xóa bảng" hoàn toàn hợp lệ Và mọi thứ khác là một bình luận Vì vậy, nó làm. chọn bất kỳ hàng phù hợp nào, xóa bảng khỏi DB và bỏ qua mọi thứ khác Vì vậy, LUÔN LUÔN sử dụng các truy vấn được tham số hóa. Hoặc chuẩn bị khôi phục DB của bạn từ bản sao lưu thường xuyên. Bạn thường xuyên sao lưu phải không? Nếu bạn kiểm tra tài liệu về PHP. mysqli. truy vấn - Thủ công[^] bạn sẽ thấy rõ rằng khi câu lệnh truy vấn không thành công, lệnh gọi sẽ trả về giá trị boolean SAI. Đừng cho rằng lệnh gọi API của bạn luôn làm những gì bạn nghĩ; Thêm giải pháp của bạn ở đâyB I U S small BIG code $query = "select * from v_student_fee LIKE '%$searchterm'";0 < > & link [^] encode untab case indent outdent Xem trước 0thành viên hiện cóhoặc tham gia với chúng tôiTải xuống, Bình chọn, Nhận xét, Xuất bản Email của bạnEmail này đang được sử dụng. Bạn có cần mật khẩu của bạn? Mật khẩu tùy chọnKhi trả lời một câu hỏi xin vui lòng
Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code (CPOL) |