insert时,如果字符串中含有特殊字符比如单引号“'”就会报错。如何解决?

mmlib2008 2002-09-19 02:01:36
类似的特殊字符肯定还有。
应该在insert之前对这些字符替换,比如把“'”换成两个单引号“''”。

谁有完整的处理办法?
谢谢。
...全文
709 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xizi2002 2002-09-22
  • 打赏
  • 举报
回复
关注,
mmlib2008 2002-09-19
  • 打赏
  • 举报
回复
我是说要防止特殊字符导致sql报错。
单引号只是其中之一,还有没有别的特殊字符需要转换的?
我用jsp+mysql.
shuixin13 2002-09-19
  • 打赏
  • 举报
回复




MySQL识别下列转义字符:

\0
一个ASCII 0 (NUL)字符。
\n
一个新行符。
\t
一个定位符。
\r
一个回车符。
\b
一个退格符。
\'
一个单引号(“'”)符。
\"
一个双引号(“"”)符。
\\
一个反斜线(“\”)符。
\%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
\_
一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
shuixin13 2002-09-19
  • 打赏
  • 举报
回复
MySQL是用 \ 来转意的
9310guo 2002-09-19
  • 打赏
  • 举报
回复
同意楼上的,用反斜杠
php 有专门的addslashes和stripslashes两个函数来给特殊字符加上或者去掉反斜杠\
binscut 2002-09-19
  • 打赏
  • 举报
回复
用反斜杠
insert into tests (users) values ('\'');
webmin 2002-09-19
  • 打赏
  • 举报
回复

mysql> insert into tests (users) values ('''');
Query OK, 1 row affected (0.00 sec)

mysql> select * from tests;
+-------+--------+
| users | passwd |
+-------+--------+
| ' | |
+-------+--------+
1 row in set (0.01 sec)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧