如何在数据库中插入特殊字符?

Joe*_*ani 16 php mysql database insert special-characters

谁能告诉我如何在MySQL数据库中插入特殊字符?我已经制作了一个PHP脚本,用于将一些单词插入到数据库中,但如果单词包含'那么它就不会被插入.

我可以在使用PHPmyAdmin时插入特殊字符,但是当它通过PHP插入时它不起作用.可能是PHP正在将特殊字符更改为其他内容吗?如果是这样,有没有办法让它们正确插入?

Ant*_*ony 28

$insert_data = mysql_real_escape_string($input_data);
Run Code Online (Sandbox Code Playgroud)

假设您将数据存储为 $input_data

  • 从PHP 5.5开始,这个函数将被弃用.你应该使用`mysqli_real_escape_string`代替. (4认同)

zaf*_*zaf 10

你逃跑了吗?尝试mysql_real_escape_string()函数,它将处理特殊字符.


Pau*_*sma 6

您最有可能转义SQL字符串,类似于:

SELECT * FROM `table` WHERE `column` = 'Here's a syntax error!'
Run Code Online (Sandbox Code Playgroud)

您需要转义引号,如下所示:

SELECT * FROM `table` WHERE `column` = 'Here\'s a syntax error!'
Run Code Online (Sandbox Code Playgroud)

mysql_real_escape_string() 为你处理这个.


Pet*_*ker 6

使用mysql_real_escape_string

那么mysql_real_escape_string做什么呢?

此PHP库函数将反斜杠添加到以下字符:\n,\ r,\,\ x00,\ x1a,'和".重要的是,单引号和双引号都被转义,因为这些是最容易打开漏洞的字符.

请告知自己sql_injection.您可以使用此链接作为开始


Krz*_*ski 5

您可以将它们直接粘贴到查询中.你应该使用appriopriate函数" mysql_real_escape_string,mysqli_real_escape_string或PDO :: quote "来"逃避"它们,具体取决于你使用的扩展名.