Добавление одиночной кавычки в результаты mysql с \ иногда, но не всегда

Первоначально, когда я пытаюсь добавить строку с одинарными кавычками, база данных использовалась для возврата сообщения об ошибке.

Поэтому я добавил добавить косую черту в эту строку перед запросом.

После добавления дополнительных слэшей строка выглядит в базе данных следующим образом. Почему-то не всегда ставится обратная косая черта.

введите здесь описание изображения

Пожалуйста, предложите мне метод обработки кавычек после прохождения этого сценария

Случай 1: использование слэшей

У меня уже есть огромный код, в котором, если я использую добавления слэшей перед вставкой, я также должен использовать стрипслэши после выбора запроса, чтобы удалить \ в каждом результате. Это приведет к множеству изменений в моих контроллерах и моделях в Codeigniter.

Случай 2: без добавления слешей

Если я не использую addlashes или mysql_escape, моя база данных не позволяет мне хранить одинарные кавычки.

Я изменил кодировку на utf8mb4_general_ci, но все равно бесполезно. Я также убедился, что кодировка в config.php также содержит кодировку utf8mb4. .

Любые предложения для эффективного метода?


person Ramaraju.d    schedule 21.02.2014    source источник
comment
Разве codeigniter не добавляет косые черты самостоятельно, если вы активируете записи? Использовать активные записи можно?   -  person Ganesh RJ    schedule 21.02.2014
comment
Подготовленный оператор обрабатывает по умолчанию, если какие-либо символы, такие как одинарные кавычки, обратная косая черта и т. д., присутствуют как часть данных. Вам даже не нужно вызывать mysql_real_escape_string для данных.   -  person Ravinder Reddy    schedule 21.02.2014
comment
вы можете попробовать $this-›db-›escape(),$this-›db-›escape_str(), $this-›db-›escape_like_str()   -  person Sundar    schedule 21.02.2014
comment
Я использую активные записи, но проблема остается. Нужно ли мне менять какие-либо конфигурации?   -  person Ramaraju.d    schedule 21.02.2014


Ответы (1)


Я нашел решение, надеюсь, это будет полезно для других

Обновите MySql до версии 5.5.3+ и используйте кодировку utf8mb4_general_ci. Убедитесь, что тип данных является длинным текстом.

Вот и все. Насколько я знаю, нет необходимости использовать аддслэши и стрипслэши.

Он также поддерживает смайлики «Спасибо».

person Ramaraju.d    schedule 21.02.2014