Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chèn chuỗi chứa dấu ngoặc kép (double quote) vào MySQL

Để lưu chuỗi chứa dấu ngoặc kép " vào cột VARCHAR/TEXT, cần escape bằng dấu gạch chéo ngược \ bên trong chuỗi được bao bởi dấu nháy đơn '.

Cú pháp

INSERT INTO ten_bang VALUES ('\"GiaTriCoDauNgoacKep\"');

Ví dụ minh họa

Tạo bảng:

CREATE TABLE DemoTable (Name VARCHAR(20));

Chèn dữ liệu có dấu ngoặc kép:

INSERT INTO DemoTable VALUES ('\"John\"');
INSERT INTO DemoTable VALUES ('\"Chris\"');
INSERT INTO DemoTable VALUES ('\"Adam Smith\"');
INSERT INTO DemoTable VALUES ('\"Carol\"');

Kết quả khi SELECT

Name
"John"
"Chris"
"Adam Smith"
"Carol"

Các cách escape khác

  • Trong chuỗi nháy đơn: '\"text\"' (khuyên dùng)
  • Trong chuỗi nháy kép: "\"text\"" — escape bằng \"
  • Dùng QUOTE(): INSERT INTO t VALUES (QUOTE('text "with" quote')); — tự động escape an toàn.
  • Prepared Statement (parameterized query): Không cần escape thủ công — an toàn nhất chống SQL Injection.

Lưu ý quan trọng

Luôn dùng Prepared Statement khi chèn dữ liệu từ đầu vào người dùng (form web, API). Escape thủ công dễ bỏ sót và dẫn đến lỗ hổng bảo mật.

-- Ví dụ an toàn với Prepared Statement (PDO PHP)
$stmt = $pdo->prepare('INSERT INTO DemoTable (Name) VALUES (?)');
$stmt->execute(['John "The Great"']); -- Tự động xử lý quote