Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธี Escape Single Quote (เครื่องหมายอ่อน) ใน MySQL

เมื่อต้องการเก็บข้อความที่มีเครื่องหมายอ่อน (') เช่น "Carol's" ใน MySQL ต้องทำการ Escape เพื่อไม่ให้ SQL เข้าใจผิด

วิธีที่ 1: ใช้ Backslash (\)

SELECT 'Carol\'s Taylor';

ผลลัพธ์: Carol's Taylor

วิธีที่ 2: ใช้ Single Quote คู่ (Double Single Quote)

SELECT 'Carol''s Taylor';

ผลลัพธ์: Carol's Taylor

ตัวอย่างการ Insert ลงตาราง

CREATE TABLE SingleQuotesDemo (
    id INT,
    name VARCHAR(100)
);

-- วิธี Backslash
INSERT INTO SingleQuotesDemo VALUES (1, 'John\'s');

-- วิธี Double Quote
INSERT INTO SingleQuotesDemo VALUES (2, 'John''s');

แนวทางปฏิบัติที่ดีที่สุด (Best Practice)

  • ใช้ Prepared Statements / Parameterized Queries แทนการ Escape เอง (ปลอดภัยจาก SQL Injection)
  • ในภาษาโปรแกรม ให้ใช้ Driver/Library ที่รองรับ Parameter Binding
  • หลีกเลี่ยงการต่อสตริง SQL โดยตรง (String Concatenation)

สรุป

ทั้งสองวิธีให้ผลลัพธ์เหมือนกัน แต่ในยุคปัจจุบันควรใช้ Prepared Statements เพื่อความปลอดภัยและสะดวกในการบำรุงรักษาโค้ด