Как обрабатывать одиночные кавычки внутри SQL-запроса в PHP?

Я использую конкретный запрос для вставки записей. Это идет хорошо. Я даже получаю записи с выбранным запросом. Но моя проблема в том, что если запись содержит одинарные кавычки '', то она дает мне эту ошибку:

> NOTE:You have an error in your SQL syntax; > check the manual that corresponds to your MySQL server > version for the right syntax to use near 'B''' at line 1 

Запрос SELECT :

 $result= mysql_query("SELECT s.name, s.sid as sid, s.category, p.name as pname FROM poet p INNER JOIN song s ON p.pid = s.pid WHERE s.name= '$sid'") or die(mysql_error()); 

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

Solutions Collecting From Web of "Как обрабатывать одиночные кавычки внутри SQL-запроса в PHP?"

Ваша проблема намного хуже, чем это – что, если кто-то вводит значение '; DROP TABLE poet; -- '; DROP TABLE poet; -- '; DROP TABLE poet; -- ? Вам нужно использовать mysql_real_escape_string() чтобы избежать значения, или использовать параметризованные запросы (например, с PDO).

Это 2011, за громкий крик. Почему SQL-инъекция все еще является широко распространенной проблемой?

Вы должны избегать данных

 $sid = mysql_real_escape_string($sid); 

используйте функцию http://www.php.net/manual/en/function.mysql-real-escape-string.php в вашей строке, чтобы указать «» и другие специальные символы. Другой способ предотвратить инъекцию – использовать разные подключения (логин -passwords) с разными правами на вставку и выбор. В этом случае mysql_real_escape_string wi9ll работает хорошо