2011-12-28 4 views
1

Я получаю данные через текстовое поле PHP и вставляю его в базу данных MySQL с обычной командой вставки. В текстовом поле появляется комментарий к пользователю для конкретного идентификатора доступа рядом с текстовым полем. Проблема в том, что когда пользователь вводит апостроф ('), например, предложение «Мы должны заботиться о ПК», возникает ошибка.apostrophe во вставке (Mysql)

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

Если я сбегу от него в MySQL, он все равно будет использоваться как SQL-инъекция, даже если ошибка не создается, и вставка работает нормально?

+0

Необходимо использовать параметры. – SLaks

+0

Использовать подготовленные заявления MySQLi –

ответ

6

mysql_real_escape_string() Используйте, или еще лучше, использовать параметризованные запросы с PDO.

+0

Что делать, если я хочу избежать его в MySQL, а не в PHP. – Ank

+0

@Ankur: Вы избегаете его для контекста запроса. Вы не можете избежать этого * в MySQL *, к тому времени, уже слишком поздно. – alex

+0

или я могу заменить ('' ',' ') в MySQL. Мне все равно, нет ли апострофы в строке. – Ank

0

Использование MySQLi подготовлено утверждений.

Вы можете легко передавать специальные символы без дополнительной работы.

Прочитано MySQLi prepared statements.