Как вставить значение с двойными кавычками в базу данных?

insert into sent_message (user_id,subject,message,background_url,total_recipients,created_at) values ('115','Greeting','Hx z'xi','/images/default/1.jpg',2,'2015-07-23 10:48:41')

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

И я попытался изменить запрос, как показано ниже, но вывод и ошибка такие же. Хо, чтобы прийти прийти.

SET QUOTED_IDENTIFIER ON GO insert into sent_message (user_id,subject,message,background_url,total_recipients,created_at) values ('115','Greeting','Hx z'xi','/images/default/1.jpg',2,'2015-07-23 10:48:41')

2 ответа

Решение

Вы пытались использовать подготовленные заявления? Таким образом, вам не нужно беспокоиться о добавлении кавычек в разделе значений; вместо этого вы используете вопросительные знаки в качестве заполнителей.

Вы могли бы тогда использовать addslashes экранировать двойные / одинарные кавычки при передаче переменных / строк в метод execute.

Вы не упомянули, какую базу данных вы используете, поэтому я предполагаю, что MySQL?

Вот руководство по PHP для подготовленных операторов:

http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

Экранирующий символ для одинарных кавычек (') - это две одинарные кавычки (''). Таким образом, пример:

Insert into SomeTable(TextField) Select 'Some ''single quotes inserted'''

Даст:

Select TextField from SomeTable

Some 'single quotes inserted'
Другие вопросы по тегам