Как я должен пойти о добавлении наклонных черт только к одинарным кавычкам и игнорированию двойных кавычек? Я использую php. Я только хотел бы выйти из одинарных кавычек для предотвращения моего php mysql запросы от повреждения.
Спасибо!
Править: Я думаю, поиск регулярного выражения и замена будут самыми полезными.
Ну, preg_replace_all("/([^\])'/","$1\'",$yourStrHere)
сделает то, о чем вы спрашиваете:
НО...
Ответ Билла о параметризованных запросах с использованием API mysqli или PDO - очень, очень хороший совет. Проще и эффективнее позволить API вашей базы данных справиться с этим, чем делать это самому - люди, написавшие эти API (и люди, работавшие над родными бэкендами для этих API), вероятно, потратили больше времени и усилий на решение проблем безопасности и производительности, чем большинство из нас могут надеяться потратить сами.
Используйте mysql_real_escape_string
. Он ускользает только от необходимых символов в отношении кодировки символов вашего соединения MySQL.
Должен работать простой str_replace("'", "'", $string)
. Но, как сказал Гамбо выше, вы должны использовать библиотечные функции, если вы пытаетесь избежать запросов MySQL.
Если вы используете параметры запроса для динамических значений, вам вообще не нужно выполнять экранирование.
Вы можете использовать параметры запроса в расширении mysqli или расширении PDO (я предпочитаю PDO). Старое расширение mysql не поддерживает параметры запроса.