注册 登录
编程论坛 ASP技术论坛

几个不懂语句

yqiong 发布于 2007-09-04 23:29, 906 次点击
1.
请问:
"select *from users where id='"&userid&"' "
语句中的‘“什么意思呀? 我直接写变量名userid不就得了嘛,干嘛那么麻烦呀!
2.
replace(request("email"),"'",""")
这语句有什么用呀?‘ “不一回事吗?
3.
replace(zuoye,"<br>","vbcrlf")
这又怎么回事呢?
chr(10),chr(13),vbcrlf
这几个相关概念老是分不清,请详细指点,先谢了!
7 回复
#2
hmhz2007-09-05 12:06
1. "select *from users where id='"&userid&"' " '是查询ID 读取该ID里的相关内容
2. replace(request("email"),"'",""") '是把 单引号“'”替换成双引号 “"”
3. replace(zuoye,"<br>","vbcrlf") '是把 <br> 换行代码 替换成 vbcrlf 方式换行
4. chr(10),chr(13),vbcrlf '把对应字段内容转换成数字调用并换行
#3
flynet2007-09-05 13:45
1. "select *from users where id='"&userid&"' " '是查询ID 数字的可以不加引号 但是字符串的必须加 比如按用户名查询

其他的按2楼的 理解
#4
yqiong2007-09-06 12:54

现在语句:
zuoye=request.form("zuoye") '从表单中<textarea> 中提取作业
zuoye=replace(zuoye,"br",vbcrlf)
zuoye=replace(zuoye,chr(34),"'")
zuoye=replace(zuoye,"'",""")

这后面的两个语句一起表什么意思呀?
chr(34)="吗?
第一句‘变”,第二句双“变’,有什么意义呀?最后不都是”了吗,那前一句replace不是多余吗!?

#5
yms1232007-09-06 13:14
以下是引用yqiong在2007-9-6 12:54:50的发言:

现在语句:
zuoye=request.form("zuoye") '从表单中<textarea> 中提取作业
zuoye=replace(zuoye,"br",vbcrlf)
zuoye=replace(zuoye,chr(34),"'")
zuoye=replace(zuoye,"'",""")

这后面的两个语句一起表什么意思呀?
chr(34)="吗?
第一句‘变”,第二句双“变’,有什么意义呀?最后不都是”了吗,那前一句replace不是多余吗!?

多重替换(也叫多重过滤)的写法
zuoye=request.form("zuoye") '从表单中<textarea> 中提取作业
zuoye=replace(zuoye,"br",vbcrlf)
zuoye=replace(zuoye,chr(34),"'")
zuoye=replace(zuoye,"'",""")
这样写是在做连续替换操作,因为replace一次只能替换一种字符串中的关键字符,多次执行就可以替换多种字符串关键字,这种写法很常用,不过这么写的确很死板,增加一个关键字就得多写一次替换语句。把这个用循环做比这样写省事
比如
Dim KStr(2)
Dim TStr(2)
Dim i
KStr(0)="br"
KStr(1)=chr(34)
KStr(2)="'"
TStr(0)=vbcrlf
TStr(1)="'"
TStr(2)="""
For i=0 To Ubound(KStr)
zuoye=replace(zuoye,KStr(i),TStr(i))
Next

#6
hmhz2007-09-06 13:35
楼上的正解,这样的写法比较科学,但初学者不容易看懂
#7
天涯听雨2007-09-06 15:10
建议好好去看下VB相应的函数,,如果事先没有看的话

有些很难讲
#8
yqiong2007-09-06 23:23

Dim KStr(2)
Dim TStr(2)
Dim i
KStr(0)="<br>"
KStr(1)=chr(34)
KStr(2)="'"
TStr(0)=vbcrlf
TStr(1)="'"
TStr(2)="""
For i=0 To Ubound(KStr)
zuoye=replace(zuoye,KStr(i),TStr(i))
Next

你举的这个例好像和我说的不是一回事哦!
你这个程序无非是把KStr数组和TStr数组中的字符一一对应的替换,
用vbcrlf替换<br>,用'替换chr(34),用"替换'.

zuoye=request.form("zuoye") '从表单中<textarea> 中提取作业
zuoye=replace(zuoye,"br",vbcrlf)
zuoye=replace(zuoye,chr(34),"'")
zuoye=replace(zuoye,"'",""")
但如果zuoye变量中同时含有多个‘和“时,如zuoye="sing'dou"s"fd'"时,
第二个replace语句把其中所有的“用’替换,即zuoye="sing'dou's'fd'"
接着第三个replace语句又把zuoye中的‘用“替换,即zuoye="sing"dou"s"fd""
如果我上面的解释是正确的话,第二个replace语句不显得多余吗?只要第三个语句也能实现同样的效果呀!

1