我正在尝试将图片网址保存到MySQL数据库表
列字段足够长。表和数据库使用UTF-8 CI-general collation(IIRC)
网址看起来像这样:
http://example.com/media/images/47142000/jpg/_47142379_005857853-1.jpg
但他们会像这样得到保存:
http://example.com/media/images/47142000/jpg ...
似乎'_'的出现导致了mySQL问题。在将字符串保存到数据库之前,是否需要对字符串进行urlencode(或对字符串执行一些其他数据)?
答案 0 :(得分:1)
在字符串中,除非启用NO_BACKSLASH_ESCAPES SQL模式,否则某些序列具有特殊含义。这些序列中的每一个都以反斜杠(“\”)开头,称为转义字符。 MySQL识别以下转义序列。
\ 0 ASCII NUL(0x00)字符。 \'单引号(“'”)字符。 \“双引号(”“”)字符。 \ b退格字符。 \ n换行符(换行符)。 \ r \ n回车符。 \ t标签字符。 \ Z ASCII 26(Control-Z)。请参阅下表后面的注释。 \反斜杠(“\”)字符。 \% 一个人物。请参阅下表后面的注释。 _ 一个人物。见表格后面的注释。
你必须逃避_字符。
有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html