Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Python mysql.connector.errors. % s được chuyển đến truy vấn SQL có dấu ngoặc kép

Thực tế là MySQLPython sử dụng đánh dấu định dạng chuỗi tiêu chuẩn ("%") cho các trình giữ chỗ biến trong các truy vấn có thể khiến mọi thứ trở nên khó hiểu.

Trình giữ chỗ truy vấn trong db-api của python dành cho giá trị được sử dụng trong where mệnh đề và insertupdate các câu lệnh, và được db-api viết thêm / thoát / trích dẫn phù hợp để tránh chèn SQL, v.v. Chúng không được sử dụng cho tên bảng hoặc trường.

Vì vậy, những gì bạn muốn ở đây là tạo truy vấn của mình bằng cách sử dụng định dạng chuỗi:

sql =  'SHOW TABLES FROM %s;' % (db_name[0],)
cursor.execute(sql)

Kể từ db_name[0] đến từ một nguồn đáng tin cậy, không có vấn đề bảo mật nào ở đây.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 5 bên trái tham gia cột không xác định

  2. Chỉ mục giải quyết cho người dùng bảng bị hỏng; cố gắng sửa chữa nó

  3. CodeIgniter / PHP Active Record sẽ không tăng số nguyên

  4. Mysql trả về kết quả bigint không chính xác từng lỗi một, rất lạ

  5. Làm cách nào để cắt bớt một bảng bằng Doctrine 2?