数据库有个URL字段,字段里储存的信息是两个域名中间一个,号,分别是"111.com,222.com"
发布网友
发布时间:2022-04-30 08:20
我来回答
共4个回答
热心网友
时间:2023-10-21 17:27
用数据库实现是一种办法:
Rsstr = "select * from [admin] where url like '%"&www&"%'"
但这种办法是明智的,比如你存的是111.com的话,可能取得的11.com也是通行的!所以得到结果时必须再进行对比,将取得的结果进行split,然后和split后的每一个元素进行对比,当然,取出的结果也可能是多个的!所以这种方法不太明智.
因为这种情况下完全是浪费服务器资源的.虽然出现的机率不是那么大.
所以,我这里还是建议你重新分析一下数据库,一般使用一个字符串表示两重意义时,表示你可能将一个简单的一对多表进行了合并!所以将这部分的信息重复设计,然后就不会出现这种情况了!比如你在URL列中指定了两个值,111.com,222.com或者说是不定值,其实就是一个一对多的表,你完全可以再建立一个如
adminid,url
此表的两个列为主键,而adminid来源于admin表,做为该表的外键使用.这种情况下就不会出现你说的那种情况了!
当然,如果URL域中的值是确定的话,也可能是一个一对多的表,但重新生成表中的URL是主键.这要看你具体的现实任务了!说白点就是如果域中的111.com像这样的值不会出现第二欠时,则新建的表url可以作为主键.
所以这种原因是因为你对数据库的设计不清楚而导致的.
热心网友
时间:2023-10-21 17:28
数组做个对比就可以了,嗯,这是我手写动写的,我已经注得很仔细了,你自己再看看了
XX=“www.baidu.com”'这里是访问者来源域名,看你怎么定义了,手动或者获取也行
dim MyArray,strArray
Rsstr="select * from [admin] "
Rs.open Rsstr,Conn,1,1
if not (Rs.bof and Rs.eof) then
'while not rs.eof'这个加上可以做整个数据库所有数据的对比
MyArray =replace(rs("url")," ","")'定义数组赋值,值为数据库存里的域名
strArray= Split(MyArray,",")‘SPLIT拆分
For n = LBound(strArray) to UBound(strArray) ’列出拆分值
'response.Write(MyArray&i&"</br>") ‘输入值
if int(strArray(n))=int(xx) then
域名存在。和要执行的程序
else
域名不存在所执行的程序
end if
next
'rs.movenext'这个加上可以做整个数据库所有数据的对比
'wend'这个加上可以做整个数据库所有数据的对比
end if
rs.close
set rs=nothing
热心网友
时间:2023-10-21 17:27
用数据库实现是一种办法:
Rsstr = "select * from [admin] where url like '%"&www&"%'"
但这种办法是明智的,比如你存的是111.com的话,可能取得的11.com也是通行的!所以得到结果时必须再进行对比,将取得的结果进行split,然后和split后的每一个元素进行对比,当然,取出的结果也可能是多个的!所以这种方法不太明智.
因为这种情况下完全是浪费服务器资源的.虽然出现的机率不是那么大.
所以,我这里还是建议你重新分析一下数据库,一般使用一个字符串表示两重意义时,表示你可能将一个简单的一对多表进行了合并!所以将这部分的信息重复设计,然后就不会出现这种情况了!比如你在URL列中指定了两个值,111.com,222.com或者说是不定值,其实就是一个一对多的表,你完全可以再建立一个如
adminid,url
此表的两个列为主键,而adminid来源于admin表,做为该表的外键使用.这种情况下就不会出现你说的那种情况了!
当然,如果URL域中的值是确定的话,也可能是一个一对多的表,但重新生成表中的URL是主键.这要看你具体的现实任务了!说白点就是如果域中的111.com像这样的值不会出现第二欠时,则新建的表url可以作为主键.
所以这种原因是因为你对数据库的设计不清楚而导致的.
热心网友
时间:2023-10-21 17:28
一般用这个就行 Rsstr="select * from [admin] where url like '%"&www&"%'"
这样就可以验证当前域名是不是符合其中一个域名,
建议使用
Rsstr="select * from [admin] where ','+url+',' like '%,"&www&",%'"
使用','+url+','是为了严格符合域名,防止 例如:www.qq.com 冒充 www.qq.com.cn 这样的域名通过验证。
热心网友
时间:2023-10-21 17:28
数组做个对比就可以了,嗯,这是我手写动写的,我已经注得很仔细了,你自己再看看了
XX=“www.baidu.com”'这里是访问者来源域名,看你怎么定义了,手动或者获取也行
dim MyArray,strArray
Rsstr="select * from [admin] "
Rs.open Rsstr,Conn,1,1
if not (Rs.bof and Rs.eof) then
'while not rs.eof'这个加上可以做整个数据库所有数据的对比
MyArray =replace(rs("url")," ","")'定义数组赋值,值为数据库存里的域名
strArray= Split(MyArray,",")‘SPLIT拆分
For n = LBound(strArray) to UBound(strArray) ’列出拆分值
'response.Write(MyArray&i&"</br>") ‘输入值
if int(strArray(n))=int(xx) then
域名存在。和要执行的程序
else
域名不存在所执行的程序
end if
next
'rs.movenext'这个加上可以做整个数据库所有数据的对比
'wend'这个加上可以做整个数据库所有数据的对比
end if
rs.close
set rs=nothing
热心网友
时间:2023-10-21 17:28
一般用这个就行 Rsstr="select * from [admin] where url like '%"&www&"%'"
这样就可以验证当前域名是不是符合其中一个域名,
建议使用
Rsstr="select * from [admin] where ','+url+',' like '%,"&www&",%'"
使用','+url+','是为了严格符合域名,防止 例如:www.qq.com 冒充 www.qq.com.cn 这样的域名通过验证。
热心网友
时间:2023-10-21 17:29
以域名为主键。再建立一个新表, 只有域或一列.真接查询域名是否存在
热心网友
时间:2023-10-21 17:29
以域名为主键。再建立一个新表, 只有域或一列.真接查询域名是否存在