Документация MySQL говорит, что она должна быть \'
. Однако и scite, и mysql показывают, что ''
работает. Я видел это, и он работает. Что мне делать?
Как избежать апострофа (') в MySql?
Ответ 1
Документация MySQL, которую вы цитируете, фактически говорит немного больше, чем вы упоминаете. Он также говорит,
A "
'
" внутри строки, указанной с помощью "'
", может быть записано как "''
".
(Кроме того, вы связаны с версией MySQL 5.0 в таблице 8.1. Специальные последовательности escape-последовательности, а текущая версия - 5.6, но текущий Таблица 8.1. Специальные последовательности escape-символов выглядит довольно похоже.)
Я думаю, что примечание Postgres в параметре backslash_quote (string)
информативно:
Это определяет, может ли знак кавычки быть представлен
\'
в строковом литерале. Предпочитаемый стандартный SQL-код для представления метки кавычки заключается в удвоении его (''
), но PostgreSQL исторически также принимал\'
. Однако использование\'
создает угрозы безопасности...
Это говорит мне, что использование двукратного символа одной кавычки является лучшим общим и долгосрочным выбором, чем использование обратной косой черты для выхода из одной кавычки.
Теперь, если вы также хотите добавить выбор языка, выбор базы данных SQL и ее нестандартные причуды, а также выбор структуры запроса для уравнения, тогда у вас может быть другой выбор. Вы не даете много информации о своих ограничениях.
Ответ 2
Стандартный SQL использует двойные кавычки; MySQL должен согласиться с тем, чтобы быть достаточно совместимым.
'He said, "Don''t!"'
Ответ 3
То, что я считаю, означает, что user2087510:
name = 'something'
name = name.replace("'", "\\'")
Я также использовал это с успехом.
Ответ 4
просто напишите ''
вместо '
я означает два раза '
Ответ 5
Вот пример:
SELECT * FROM pubs WHERE name LIKE "%John's%"
Просто используйте двойные кавычки, чтобы заключить одинарную кавычку.
Если вы настаиваете на использовании одинарных кавычек (и необходимости избегать символа):
SELECT * FROM pubs WHERE name LIKE '%John\'s%'
Ответ 6
Есть три способа, о которых я знаю. Первый из них не самый красивый, а второй - обычный способ для большинства языков программирования:
- Используйте другую одиночную цитату:
'I mustn''t sin!'
- Используйте escape-символ
\
перед одиночной цитатой'
:'I mustn\'t sin!'
- Используйте двойные кавычки, чтобы заключить строку вместо одиночных кавычек:
"I mustn't sin!"
Ответ 7
Я думаю, если у вас есть какая-либо точка данных с апострофом, вы можете добавить один апостроф перед апострофом
например. "Это место Иоанна"
Здесь MYSQL предполагает два предложения: "Это место Джона"
Вы можете поставить "Это место Джона". Я думаю, что это должно сработать.
Ответ 8
В PHP мне нравится использовать mysqli_real_escape_string(), который экранирует специальные символы в строке для использования в операторе SQL.
видеть https://www.php.net/manual/en/mysqli.real-escape-string.php
Ответ 9
Заменить строку
value = value.replace(/'/g, "\\'");
где значение - это ваша строка, которая будет храниться в вашей базе данных.
Далее
NPM-пакет для этого, вы можете изучить его
Ответ 10
Это работало:
name = 'John O'Brien'
name = name.replace("\'", "\\\'")