Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Tôi đã thấy câu hỏi này được hỏi theo nhiều cách khác nhau trên trang web này, nhưng không ai trong số họ giải quyết chính xác vấn đề của tôi.

Tôi có một câu lệnh SQL với các trích dẫn duy nhất bên trong nó và tôi đang cố gắng sử dụng các thực tiễn được đề xuất trước khi thực hiện truy vấn cơ sở dữ liệu với nó. Vì vậy, tuyên bố giống như

val2="abc 'dostuff'" 
sql="INSERT INTO TABLE_A(COL_A,COL_B) VALUES(%s,'%s')" %(val1, val2)
a_cursor.execute(sql)

Tuy nhiên, khi tôi chạy cái này, tôi nhận được ..

ProgrammingError: (1064,"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dostuff'.

Tôi đang làm gì sai? Cảm ơn Nupur rất nhiều

Sử dụng backticks, báo giá đôi và trích dẫn đơn khi truy vấn cơ sở dữ liệu MySQL có thể được đưa xuống đến hai điểm cơ bản.

  1. Trích dẫn (đơn và đôi) được sử dụng xung quanh chuỗi.
  2. Backticks được sử dụng xung quanh số nhận dạng bảng và cột.

Dấu ngoặc kép

Sử dụng dấu ngoặc kép ở đây là một số ví dụ đầu vào và đầu ra:

SELECT "test", "'test'", "''test''", "te""st";

Đầu ra trông như thế này:

Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Bao bọc các trích dẫn đơn bên trong các trích dẫn kép sẽ hủy bỏ hành vi dự kiến ​​của các trích dẫn duy nhất trong truy vấn MySQL và thay vào đó coi nó như một phần của chuỗi. Điều này có thể được nhìn thấy trong các cột 2 và 3 trong ví dụ trên.

Chèn hai trích dẫn kép ở giữa chuỗi sẽ hủy bỏ một trong số chúng.

Dấu nháy đơn

Sử dụng các trích dẫn đơn ở đây là một số ví dụ đầu vào và đầu ra:

SELECT 'test', '"test"', '""test""', 'te''st';

Đầu ra trông như thế này:

Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Bao bọc các trích dẫn đơn bên trong các trích dẫn kép sẽ hủy bỏ hành vi dự kiến ​​của các trích dẫn duy nhất trong truy vấn MySQL và thay vào đó coi nó như một phần của chuỗi. Điều này có thể được nhìn thấy trong các cột 2 và 3 trong ví dụ trên.

Chèn hai trích dẫn kép ở giữa chuỗi sẽ hủy bỏ một trong số chúng.

Dấu nháy đơn

Sử dụng các trích dẫn đơn ở đây là một số ví dụ đầu vào và đầu ra:

SELECT "They've found this tutorial to be helpful"

Đầu ra trông như thế này:

Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Bao bọc các trích dẫn đơn bên trong các trích dẫn kép sẽ hủy bỏ hành vi dự kiến ​​của các trích dẫn duy nhất trong truy vấn MySQL và thay vào đó coi nó như một phần của chuỗi. Điều này có thể được nhìn thấy trong các cột 2 và 3 trong ví dụ trên.

SELECT 'They responded, "We found this tutorial helpful"'

Chèn hai trích dẫn kép ở giữa chuỗi sẽ hủy bỏ một trong số chúng.

SELECT 'They\'ve responded, "We found this tutorial helpful"'

Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Dấu nháy đơn

Sử dụng các trích dẫn đơn ở đây là một số ví dụ đầu vào và đầu ra:

    SELECT `Album`.`Title`
    FROM `Album` AS `Album`
    GROUP BY `Album`.`Title`
    ORDER BY `Title` ASC
    LIMIT 10;

Như được hiển thị trong phần trình diễn ở trên, các trích dẫn đơn hoạt động giống như cách trích dẫn kép trong các bối cảnh này.

    SELECT Album.Title
    FROM Album AS Album
    GROUP BY Album.Title
    ORDER BY Title ASC
    LIMIT 10;

Sử dụng trích dẫn đơn và trích dẫn đôi với nhau

Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Thường thì sẽ có một cơn co thắt trong một chuỗi, hoặc báo giá trực tiếp. Trong các tình huống như trong các báo cáo khảo sát NPS hoặc các mẫu phản hồi của khách hàng khác, đây thường là trường hợp. Trong những trường hợp này sử dụng trích dẫn kép để bọc một chuỗi văn bản có chứa một cơn co thắt giống như chúng sẽ giữ một trích dẫn duy nhất trong chuỗi dưới dạng dấu nháy đơn.

Trong trường hợp này, việc trình bày một chuỗi với một cơn co thắt sẽ trông như thế này:

SELECT 'They\'ve responded, "We found this tutorial helpful"' as `Response`

Hoặc, nếu bạn cần sử dụng trích dẫn kép để trình bày báo cáo phản hồi của khách hàng trong chuỗi, bạn có thể sử dụng các trích dẫn đơn để bọc toàn bộ chuỗi.

Hướng dẫn python mysql escape single quote - python mysql thoát báo giá duy nhất

Làm thế nào để bạn thoát khỏi một trích dẫn duy nhất trong SQL Python?

Trích dẫn gấp đôi là tốt nhất để thoát ra: String = "" "Điều này sẽ trải qua 'trích dẫn đơn'," trích dẫn đôi "và tất cả các EOL theo nghĩa đen trong cùng một chuỗi. are best for escaping: string = """This will span across 'single quotes', "double quotes", and literal EOLs all in the same string.

Làm cách nào để thoát khỏi một trích dẫn duy nhất trong mysql?

Tương tự, chúng ta có thể sử dụng Backslash để thoát khỏi các trích dẫn đơn và trích dẫn gấp đôi để chèn các giá trị vào bảng MySQL.use backslash to escape single quotes and double quotes to insert values into MySQL table.

Làm cách nào để cho phép một trích dẫn duy nhất trong truy vấn MySQL?

QUOTE (): Hàm này trong MySQL được sử dụng để trả về kết quả có thể được sử dụng như một giá trị dữ liệu thoát ra đúng trong câu lệnh SQL.Chuỗi được trả về được đặt kèm theo các dấu ngoặc kép và với mỗi trường hợp của dấu gạch chéo ngược (\), trích dẫn đơn ('), ascii null và điều khiển+z trước một dấu gạch chéo ngược.The string is returned enclosed by single quotation marks and with each instance of backslash (\), single quote ('), ASCII NULL, and Control+Z preceded by a backslash.