Подтвердить что ты не робот

Способ вставки текста с (апострофом) в таблицу SQL

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

INSERT INTO exampleTbl VALUES('he doesn't work for me')

где не содержится апостроф.

Каким образом можно вставить текст, содержащий '(апостроф) в таблицу SQL.

4b9b3361

Ответ 1

В SQL способ сделать это - удвоить апостроф:

'he doesn''t work for me'

Если вы делаете это программно, вам следует использовать API, который принимает параметры и экранирует их для вас, например, подготовленные операторы или аналогичные, а не экранировать и использовать конкатенацию строк для сборки запроса.

Ответ 2

INSERT INTO exampleTbl VALUES('he doesn''t work for me')

Если вы добавляете запись через ASP.NET, вы можете использовать объект SqlParameter для передачи значений, поэтому вам не нужно беспокоиться об апострофе, в который входят пользователи.

Ответ 3

попробуйте это

INSERT INTO exampleTbl VALUES('he doesn''t work for me')

Ответ 4

$value = "he doesn't work for me";

$new_value = str_replace("'", "''", "$value"); // it looks like  " ' "  , " ' ' " 

INSERT INTO exampleTbl (`column`) VALUES('$new_value')

Ответ 5

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

То, что я сделал универсально в скриптах и программах, с которыми работал, - это заменить его символом 'при обработке форматирования вводимого текста.

Теперь я знаю, что в некоторых случаях символ обратного удара может фактически быть частью того, что вы пытаетесь сохранить (например, на таком форуме), но если вы просто сохраняете текстовый ввод от пользователей, это возможное решение.

Переход в базу данных SQL

$newval=~s/\'/'/g;

Затем, когда вы возвращаетесь на дисплей, снова фильтруетесь так:

$showval=~s/'/\'/g;

Этот пример был, когда используется PERL/CGI, но он также может применяться к PHP и другим базам. Я обнаружил, что это работает хорошо, потому что я думаю, что это помогает предотвратить возможные попытки внедрения, потому что все "удаляются до попытки вставки записи".

Ответ 6

insert into table1 values("sunil' book",123,99382932938);

используйте двойной апостроф внутри одного апострофа, он будет работать

Ответ 7

да, сервер sql не позволяет вставлять одиночную кавычку в поле таблицы из-за атаки на SQL-инъекцию. поэтому при сохранении мы должны заменить единый appostrophe на double.

(он не работает для меня) должен быть = > (он не работает для меня)

Ответ 8

вы можете использовать обратную косую черту '\', если вы хотите отобразить одну цитату в тексте.

INSERT INTO exampleTbl VALUES ('Он doesn (\') t ');