2010-11-30 4 views
2

Я пытаюсь создать некоторые операторы SQL вставки и несколько переменных имеют имена, как следующее:Экранирования значения с апострофом для MySQL вставить

  • "Aamma's Pastries"

Я хочу, чтобы избежать кавычек ('), поскольку я добавляю значение в базу данных MySQL. Как это сделать с PHP?

+0

зависит от вашего языка кодирования, но в общем случае mysql_real_escape_string должен делать трюк. http://dev.mysql.com/doc/refman/5.0/en/mysql-real-escape-string.html – Rufinus 2010-11-30 04:42:47

+0

@Rufinus извинился, забыл упомянуть, используя PHP – 2010-11-30 04:43:54

+0

, в этом случае наблюдатель дал правильный ответ. – Rufinus 2010-11-30 04:45:34

ответ

4

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

Более простой подход, который также обеспечивает согласованность, заключается в использовании parameterised statements. Это гарантирует, что все правильно экранировано, а также избегает необходимости встраивать переменные в ваши запросы.

В PHP это может использоваться с более новыми библиотеками или MySQLi. Из них я предпочитаю PDO для гибкости, которую он предоставляет (например, я в настоящее время застрял в MySQL, но я не намерен поддерживать это приложение навсегда, а с PDO миграция будет значительно упрощена), но есть здесь много вопросов, которые охватывают все плюсы и минусы каждого.

-2

Существует эта функция, которую вы можете использовать, что ускользает все символы, которые вам нужны, вот пример кода в PHP

<?php 
$str = "Is your name O'reilly?"; 

// Outputs: Is your name O\'reilly? 
echo addslashes($str); 
?> 
1

Пожалуйста, используйте подготовить заявления и позволить MySQL обрабатывать спасаясь себя и вы делаете на уровне кода

Смежные вопросы