The dokumentasi MySQL mengatakan bahwa itu harus \'
. Namun, kedua scite dan mysql menunjukkan bahwa itu ''
berfungsi. Saya melihat itu dan itu berhasil. Apa yang harus saya lakukan?
147
The dokumentasi MySQL mengatakan bahwa itu harus \'
. Namun, kedua scite dan mysql menunjukkan bahwa itu ''
berfungsi. Saya melihat itu dan itu berhasil. Apa yang harus saya lakukan?
''
atau\'
tidak?\'
adalah MySQL khusus sementara''
ANSI SQL compliant jika saya tidak salahJawaban:
Dokumentasi MySQL yang Anda kutip sebenarnya mengatakan sedikit lebih banyak daripada yang Anda sebutkan. Ia juga mengatakan,
(Juga, Anda ditautkan ke versi MySQL 5.0 dari Tabel 8.1. Sequence Escape Karakter Khusus , dan versi saat ini adalah 5.6 - tetapi Tabel 8.1 saat ini . Sequence Escape Karakter Khusus terlihat sangat mirip.)
Saya pikir catatan Postgres pada
backslash_quote (string)
parameter informatif:Yang mengatakan kepada saya bahwa menggunakan karakter kutipan tunggal dua kali lipat adalah pilihan keseluruhan dan jangka panjang yang lebih baik daripada menggunakan backslash untuk menghindari kutipan tunggal.
Sekarang jika Anda juga ingin menambahkan pilihan bahasa, pilihan database SQL dan kebiasaan non-standar, dan pilihan kerangka kerja kueri untuk persamaan, maka Anda mungkin berakhir dengan pilihan yang berbeda. Anda tidak memberi banyak informasi tentang kendala Anda.
sumber
SQL standar menggunakan tanda kutip ganda; MySQL harus menerimanya agar memenuhi persyaratan.
sumber
'
" di dalam string yang dikutip dengan "'
" dapat ditulis sebagai "''
" . A ""
" di dalam string yang dikutip dengan ""
" dapat ditulis sebagai """
". Awali karakter kutipan dengan karakter escape (“` `”).Apa yang saya percaya user2087510 maksudkan adalah:
Saya juga menggunakan ini dengan sukses.
sumber
hanya menulis
''
di tempat yang'
saya maksud dua kali'
sumber
Ini sebuah contoh:
Cukup gunakan tanda kutip ganda untuk melampirkan tanda kutip tunggal.
Jika Anda bersikeras menggunakan tanda kutip tunggal (dan kebutuhan untuk melarikan diri dari karakter):
sumber
Ada tiga cara yang saya ketahui. Yang pertama bukan yang tercantik dan yang kedua menjadi cara umum dalam kebanyakan bahasa pemrograman:
'I mustn''t sin!'
\
sebelum kutipan tunggal'
:'I mustn\'t sin!'
"I mustn't sin!"
sumber
\'
seperti yang digunakan oleh begitu banyak bahasa pemrograman, tetapi''
didukung oleh lebih banyak dialek SQL, jadi menggunakan opsi 1 lebih baik untuk kompatibilitas. Sqlite misalnya tidak bekerja dengan backslash lolos.Ganti string
di mana nilai adalah string Anda yang akan disimpan dalam Database Anda.
https://www.npmjs.com/package/mysql-apostrophe
sumber
Saya pikir jika Anda memiliki titik data dengan apostrof Anda dapat menambahkan satu apostrof sebelum apostrof
misalnya. 'Ini adalah tempat milik John'
Di sini MYSQL mengasumsikan dua kalimat 'Ini adalah tempat John'
Anda dapat menempatkan 'Ini adalah tempat milik John'. Saya pikir itu harus bekerja seperti itu.
sumber
Dalam PHP saya suka menggunakan mysqli_real_escape_string () yang lolos dari karakter khusus dalam string untuk digunakan dalam pernyataan SQL.
lihat https://www.php.net/manual/en/mysqli.real-escape-string.php
sumber
Mungkin di luar topik, tetapi mungkin Anda datang ke sini mencari cara untuk membersihkan input teks dari formulir HTML, sehingga ketika pengguna memasukkan karakter tanda kutip, itu tidak menimbulkan kesalahan ketika Anda mencoba menulis teks ke SQL berbasis-tabel dalam DB. Ada beberapa cara untuk melakukan ini, dan Anda mungkin ingin membaca tentang injeksi SQL juga, tetapi opsi sederhana dalam PHP adalah dengan menggunakan fungsi htmlspecialchars () yang akan mengubah semua tanda kutip menjadi
'
yang mungkin Anda ingin simpan bagaimanapun.sumber