Tôi đang cố gắng thực hiện truy vấn để tìm kiếm 3 bảng trong cơ sở dữ liệu bằng cách sử dụng MySQL thông qua Python. Mỗi lần tôi thử và thực hiện chuỗi sau đây dưới dạng truy vấn, nó cho tôi một lỗi về việc nối trong chuỗi.Python: ValueError: ký tự định dạng không được hỗ trợ '' '(0x27) tại chỉ mục 1
"SELECT fileid FROM files WHERE description LIKE '%" + search + "%' OR filename LIKE '%" + search + "%' OR uploader LIKE '%" + search + "%' ORDER BY fileid DESC"
Đây là lỗi nó mang lại cho tôi:
ValueError: unsupported format character ''' (0x27) at index 1
Nếu tôi loại bỏ các nhân vật nó yêu cầu sau đó tôi còn phải tháo%, mà dừng lại các truy vấn từ thực tế hoạt động bình thường. Tôi có thể làm gì để sửa lỗi này, vì tôi khá mới với Python.
Cảm ơn, Kris
Sử dụng công cụ thay thế chuỗi được tạo sẵn cho công cụ SQL của bạn thay vì cố tự xây dựng chuỗi truy vấn bằng cơ chế chuỗi chuẩn Python. Nó hoạt động tốt hơn theo cách đó. Bạn đang sử dụng MySQLdb? –
Có Tôi đang sử dụng MySQLdb và tôi có thể tìm thấy các công cụ thay thế này ở đâu? – user1558746
Tài liệu tại http://mysql-python.sourceforge.net/MySQLdb.html#functions-and-attributes nói rằng "Lưu ý rằng bất kỳ dấu hiệu phần trăm chữ nào trong chuỗi truy vấn được chuyển đến execute() phải được thoát, nghĩa là %% . " Bạn đang sử dụng 'execute()'? Các công cụ thay thế @Silas được đề cập được hiển thị tại http://mysql-python.sourceforge.net/MySQLdb.html#some-examples – LarsH