2010-02-23 36 views
6

Tôi có truy vấn mysql trong php, sử dụng kết quả phù hợp/chống lại để lọc kết quả. Tôi cố gắng lấy một ký tự đại diện sau chuỗi $ để ký tự tiếp theo có thể là bất kỳ thứ gì. Cứu giúp?truy vấn mysql dựa vào ký tự đại diện

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)" 

Trả lời

6

Sử dụng * thay vì % như một ký tự đại diện khi sử dụng MATCH (...) AGAINST (...):

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)" 
2

Đừng nhúng biến thành chuỗi dụng dấu ngoặc kép và bạn đang thiết lập:

"SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)" 

đó đang được nói, tôi không thể khẳng định điều này là SQL hợp lệ. Nhưng ít nhất nó sẽ đảm bảo biến của bạn được mở rộng đúng cách và nếu nó không hoạt động thì nó sẽ không phải vì PHP.

Và chỉ trong trường hợp lời nhắc này sẽ hữu ích, vui lòng quên escape data that goes into a query.

Các vấn đề liên quan