对于这个问题,这篇文章讲的非常好https://blog.youkuaiyun.com/suboysugar/article/details/5442848,其中提到了一个小窍门,可以将下面的语句题换成变量的写法:
strsql=“Insert into mytable(username) values(‘张红’)”
第一步:先把张红抹去,在原位置加两个引号
strsql=“Insert into mytable(username) values(‘” “’)”
第二步:在中间添加两个连接符&
strsql=“Insert into mytable(username) values(‘” & & “’)”
第三步:把变量写在两个连接符之间
strsql=“Insert into mytable(username) values(‘” & thename & “’)” --------------------- 作者:suboysugar 来源:优快云 原文:https://blog.youkuaiyun.com/suboysugar/article/details/5442848?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!
至于为什么这样写,以下是我的一些理解:
首先附上一行代码:
title=“活着”
link="http://www.le.com/movie/10000965.html"
commnet="https://movie.douban.com/subject/1292365/comments?status=P"
sql = "insert into dangdang(title,link,comment) values('"+title+"','"+link+"','"+comment+"')"
其中的title,link,comment都是值为字符串的变量。
在理解引号问题之前,我们应该首先弄清一个问题:那就是上面的这个sql与我们真正在数据库中去执行的sql语句究竟有什么区别?很明显,上面的sql是一个字符串变量,真正在数据库中执行的是将sql去掉双引号以后的语句,如果明白了这点就比较好理解了。首先,将上面的sql分为几个部分,分别是
"insert into dangdang(title,link,comment) values('"
title
"','"
link
"','"
comment
"')"
其中第1,3,5,7项都是字符串,2,4,6是字符串变量,它们之间使用连接符"+"连接起来。那么将1,3,5,7的双引号去掉,将2,4,6的值带入,可以得到真正的sql语句如下:
insert into dangdang(title,link,comment) values('title','link','comment')
至此,通过对sql拆分就可以基本明白引号到底为什么这么加入的问题啦。至于怎么加引号,使用文章开头提到的小窍门即可。