如何在MySQL中插入特殊字符?

时间:2011-01-26 10:13:31

标签: mysql

我正在从shell脚本执行insert查询,该脚本从多个文件中读取数据。一些要插入的数据在文本中包含',MySQL不断给出错误

ERROR 1064 (42000) at line 1: 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 's Development & Empowerment, Youth Affairs                 
','
Himachal Pradesh                    ' at line 1

这是实际文字:Women's Development & Empowerment, Youth Affairs

5 个答案:

答案 0 :(得分:16)

你需要逃避引用,如下:

'Women\'s Development & Empowerment, Youth Affairs'

请注意,如果您使用PHP等语言生成SQL语句,则可以使用以下函数来执行此操作。

例如,在PHP中,有mysql_real_escape_string,它会为您处理。请注意,准备好的陈述应该优先考虑,因为更难弄错。

另见:

答案 1 :(得分:3)

在将输入字符串传递给MySql之前,必须先将其转义。

list of escape character是:

Character   Escape Sequence
\0  An ASCII NUL (0x00) character.
\'  A single quote (“'”) character.
\"  A double quote (“"”) character.
\b  A backspace character.
\n  A newline (linefeed) character.
\r  A carriage return character.
\t  A tab character.
\Z  ASCII 26 (Control-Z). See note following the table.
\\  A backslash (“\”) character.
\%  A “%” character. See note following the table.
\_  A “_” character. See note following the table.

答案 2 :(得分:1)

你需要用反斜杠来逃避'角色\

妇女的发展与发展赋权,青年事务

答案 3 :(得分:1)

你需要逃避你的报价。您可以通过在插入查询中加倍来实现此目的;即使用''而不是'。这是两个单引号而不是一个双引号。

答案 4 :(得分:0)

您使用的服务器端语言是什么?

有许多方法可以通过它来逃避字符串,我更喜欢!

例如:您可以在查询中使用mysql_escape_string您输入的数据,这样它就会自动转发" ' "

等字符。

mysql_escape_string是php function,前提是您使用php