2015-09-29 3 views
0

Я tring, чтобы вставить в мою базу данных следующую строку: «è», но каждый раз, когда я пытаюсь в базе данных, ничего не добавляется. Это код, который я использую для вставки.Вставьте специальные символы в DB

$string = mysql_real_escape_string($_REQUEST['string_passed']); 
$query = "UPDATE my_table SET my_field = '$string' WHERE id = '$id'"; 

В моем файле connection.inc.php у меня есть следующий код.

mysql_connect("localhost", "root", "") or die("Problem: ".mysql_error()); 
mysql_select_db("my_db") or die("Poblem: ".mysql_error()); 
mysql_query('SET NAMES utf8'); 

Я знаю, я могу вставить $string с помощью htmlentities, но есть какие-либо другие решения?

+0

Также не используйте расширение базы данных 'mysql_'. Его устарели годами и полностью исчезнут в PHP7. Вместо этого изучите ['mysqli' или' PDO'] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – RiggsFolly

+0

[Ваш скрипт подвержен риску SQL-инъекции Атаки.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Узнайте о [подготовленном] (http://en.wikipedia.org/wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart. prepare-statements.php) и подумайте об использовании PDO, [это действительно не сложно] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

Вы создаете запрос, но не показываете, как вы его выполняете. Пожалуйста, укажите соответствующий код. – Alfabravo

ответ

0

mysql_real_escape_string Исключает специальные символы в строке для использования в SQL-заявлении. Это то, что вы увидите на странице руководства. (кстати, он устарел в php 5.5, используйте mysqli::real_escape_string)

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