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

Chèn danh sách vào cơ sở dữ liệu của tôi bằng Python

Câu trả lời cho câu hỏi ban đầu của bạn là:Không, bạn không thể chèn một danh sách như vậy.

Tuy nhiên, với một số điều chỉnh, bạn có thể làm cho mã đó hoạt động bằng cách sử dụng %r và chuyển qua một tuple:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)

Thật không may, kiểu chèn biến đó khiến mã của bạn dễ bị tấn công chèn SQL .

Thay vào đó, chúng tôi khuyên bạn nên sử dụng API DB của Python và xây dựng một chuỗi truy vấn tùy chỉnh với nhiều dấu chấm hỏi để chèn dữ liệu vào:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)

Ví dụ ở đầu tài liệu SQLite3 hiển thị cách chuyển các đối số bằng cách sử dụng dấu chấm hỏi và nó giải thích tại sao chúng lại cần thiết (về cơ bản, nó đảm bảo trích dẫn chính xác các biến của bạn).



  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 Loại bỏ các cột trùng lặp trên Nối trái, 3 bảng

  2. XÓA KHỎI ĐẾM CÓ (*) trong MySQL

  3. ĐẶT HÀNG THEO Truy vấn con cho GROUP BY để THAM GIA chuyển đổi

  4. MySQL kiểm tra xem một bảng có tồn tại hay không mà không đưa ra một ngoại lệ

  5. Thoát MySQL mà không cần khởi động lại trên El Capitan