1

我正在尝试将图像 url 保存到 MySQL 数据库表

列字段足够长。表和数据库使用 UTF-8 CI-general collat​​ion (IIRC)

网址看起来像这样:

http://example.com/media/images/47142000/jpg/_47142379_005857853-1.jpg

但他们是这样得救的:

http://example.com/media/images/47142000/jpg ...

似乎“_”的出现导致了 mySQL 问题。在将字符串保存到数据库之前,我是否需要对字符串进行 urlencode(或对字符串执行一些其他数据处理)?

4

1 回答 1

1

在字符串中,某些序列具有特殊含义,除非启用了 NO_BACKSLASH_ESCAPES SQL 模式。这些序列中的每一个都以反斜杠(“\”)开头,称为转义字符。MySQL 识别以下转义序列。

\0 ASCII NUL (0x00) 字符。\' 单引号 (“'”) 字符。\" 双引号 (“"”) 字符。\b 退格字符。\n 换行符(换行符)。\r 回车符。\t 制表符。\Z ASCII 26 (Control-Z)。见表格后面的注释。\ 反斜杠 (“\”) 字符。\% 一个人物。见表格后面的注释。_ 一个人物。见表格后面的注释。

您必须转义 _ 字符。

有关更多信息,请参见http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html

于 2010-02-13T04:02:26.437 回答