Как избежать одиночных кавычек в MySQL - PullRequest
88 голосов
/ 20 мая 2009

Как мне вставить значение в MySQL, состоящее из одинарных или двойных кавычек. * 1001 то есть *

This is Ashok's Pen.

Одиночная цитата создаст проблемы. Там могут быть другие escape-символы.

Как правильно вставить данные?

Ответы [ 16 ]

1 голос
/ 22 ноября 2016
$var = mysqli_real_escape_string($conn, $_POST['varfield']);
1 голос
/ 27 ноября 2013

если вы используете php, просто используйте функцию addlashes ()

PHP добавляет аддеш # 1004 *

0 голосов
/ 19 апреля 2018

используйте любой addlahes (), или mysql_real_escape_string

0 голосов
/ 10 декабря 2016

Как я делаю, используя Delphi:

TheString для «выхода»:

TheString=" bla bla bla 'em some more apo:S 'em and so on ";

Решение:

StringReplace(TheString, #39,'\'+#39, [rfReplaceAll, rfIgnoreCase]);

Результат:

TheString=" bla bla bla \'em some more apo:S \'em and so on ";

Эта функция заменит все символы Char (39) на «\», что позволяет без проблем вставлять или обновлять текстовые поля в MySQL.

Подобные функции есть во всех прог-языках!

0 голосов
/ 04 декабря 2015

Может быть, вы могли бы взглянуть на функцию Quote в руководстве Mysql.

http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_quote

0 голосов
/ 23 мая 2013

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

В Perl DBI, например, вы можете использовать:

my $string = "This is Ashok's pen";
$dbh->do("insert into my_table(my_string) values(?)",undef,($string)); 
...