mysql语句如何插入含单引号或反斜杠的值详解

在MySQL中插入含有单引号(‘)或反斜杠(\)的值,需要使用转义字符对这些特殊字符进行转义。

例如:插入含有单引号的值:

INSERT INTO `table` (`field`) VALUES (' value \'');

这里使用\’对单引号进行转义。插入含有反斜杠的值:

INSERT INTO `table` (`field`) VALUES ('c:\\file\\name');

这里使用\\对反斜杠进行转义。如果值中同时包含单引号和反斜杠,则都需要进行转义:

INSERT INTO `table` (`field`) VALUES ('c:\\file\'s\\name');

此外,如果值字面量使用双引号(“)而非单引号(‘),也可以避免特殊字符转义,例如:

INSERT INTO `table` (`field`) VALUES ("value '");  

一些其他转义字符:

\n  ->  换行符

\r  ->  回车符

\t  ->  制表符tab

\\  ->  反斜杠本身

\’   ->  单引号本身

\”   ->  双引号本身所以可以总结为:1. 使用\’转义或使用双引号等其他符号

2. 对参数化查询或使用变量进行赋值,可以避免直接与SQL字符串拼接参数化查询例子:

SET @str = 'value\'';
INSERT INTO `table` (`field`) VALUES (@str);

变量赋值例子:

 
SET @str = 'c:\\file\'s\\name';
INSERT INTO `table` (`field`) VALUES (@str);

参数化查询和变量赋值可以有效防止SQL注入,并简化特殊字符的转义处理。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论