Saya tidak dapat memasukkan apostrof di MySQL

MySQL memerlukan penanganan teks yang cermat untuk penanganan apostrophes.

Pembatas apostrophe

Dalam versi SQL MySQL, awal dan akhir string ditunjukkan dengan tanda kutip tunggal atau tanda kutip ganda. Dua contoh berikut ini valid:

INSERT INTO COMPANY_TABLE (company_name) VALUES 'The Fish Shack';

INSERT INTO COMPANY_TABLE (company_name) VALUES "The Fish Shack";

Namun, contoh berikut menghasilkan kesalahan:

INSERT INTO COMPANY_TABLE (tag_line) VALUES 'Makan di Joe's - Ini Makanan Yang Baik!';

SQL mengartikan string sebagai "'Eat at Joe', " dengan segala sesuatu setelah apostrof yang kedua sebagai salah. Teks berikut ini tidak memecahkan masalah:

INSERT INTO COMPANY_TABLE (tag_line) VALUES "Makan di Joe's - Ini Makanan Yang Baik!";

Ini akan berhasil jika teks memiliki tanda kutip tunggal di antara tanda kutip ganda tetapi teks ini memiliki dua. Juga, karena beberapa bahasa pemrograman halaman web menggunakan tanda kutip ganda, Anda mungkin ingin menghindari menggunakannya dalam SQL Anda.

The double apostrophes dan bar terbalik

Solusinya ditentukan oleh MySQL menafsirkan dua apostrophes berturut-turut '', sebagai kutipan tunggal untuk data karakter. Menggunakan karakter backslash, atau "\", tepat sebelum apostrof dalam data memiliki efek yang sama. MySQL memperlakukan kombinasi backslash dan karakter khusus lainnya sebagai urutan pelarian, menciptakan karakter dari keduanya. Contoh-contoh berikut memecahkan masalah:

INSERT INTO COMPANY_TABLE (tag_line) VALUES 'Makan di Joe''s - Ini Makanan Yang Baik!';

INSERT INTO COMPANY_TABLE (tag_line) VALUES 'Makan di Joe \' s - Ini Makanan Bagus! ';

Saat menulis program untuk membuat kalimat di MySQL, hal pertama yang harus dilakukan adalah mengeksplorasi semua string teks dan menambahkan apostrof atau backslash sebelum apostrophes dalam data.

Fungsi Addslashes

Bahasa pemrograman web PHP sering digunakan dalam kombinasi dengan MySQL, ini memiliki fungsi yang disebut addlashes untuk secara otomatis mengkonversi apostrophes. Cukup lakukan fungsi dari data jenis string Anda seperti pada contoh ini:

$ tag_line = addlashes ($ tag_line);

Fungsi Stripslashes

Setelah Anda mengonversi apostrophes ke variabel data backslash dan apostrophes, Anda mungkin harus mengkonversi kembali ke data normal. Fungsi stripslashes PHP menyelesaikan tugas ini dalam satu langkah. Gunakan sebagai contoh berikut:

$ tag_line = stripslashes ($ tag_line);