我正在尝试使用经典 ASP 更新 MySQL 中的数据库,但它不起作用。有人可以告诉我我的代码可能有什么问题吗?
IDCliSession = Session("usuarioident")
if IDCliSession <> "" then
IDCliSession = IDCliSession
else
IDCliSession = 0
end if
set cli = conexao.execute("SELECT * FROM clientes WHERE id_cliente = "& IDCliSession &"")
senha_S = request.form("senha")
senha_C = request.form("confsenha")
senha = request.form("confsenha")
if senha1 & "" <> "" or senha2 & "" <> "" then
if senha_S <> senha_C then
response.redirect "Registro.asp?msg=A Senha e a Confirmação de Senha não são iguais. Por favor, preencha novamente!"
end if
end if
loja = "1062"
tipoPe = request.Form("tipo")
email = request.Form("email")
fone1 = request.Form("fonefixo")
fone2 = request.Form("fonecel")
cep = request.Form("cep")
tipo_residencia = request.Form("tipo_residencia")
endereco = request.Form("endereco")
numero = request.Form("numero")
bairro = request.Form("bairro")
complemento = request.Form("complemento")
cidade = request.Form("cidade")
fk_estado = request.Form("estado")
fk_pais = request.Form("pais")
data = Date()
if request.Form("newsletter") = "1" then
newsletter = 1
else
newsletter = 0
end if
conhecimento = request.Form("tipo")
modalidade = request.Form("modalidade")
modalidade_ativa = "0"
comentarios = ""
if not cli.eof then
query = "SELECT * FROM clientes WHERE email='"& Session("mail") &"'"
Set rsCliente = Server.CreateObject("ADODB.RecordSet")
rsCliente.Open query, conexao, 2, 3
rsCliente("tipo") = tipoPe
rsCliente("email") = email
rsCliente("senha") = senha
rsCliente("fone1") = fone1
rsCliente("fone2") = fone2
rsCliente("cep") = cep
rsCliente("tipo_residencia") = tipo_residencia
rsCliente("endereco") =endereco
rsCliente("numero") = numero
rsCliente("fk_pais") = fk_pais
rsCliente("newsletter") = newsletter
rsCliente("conhecimento") = conhecimento
rsCliente("modalidade") = modalidade
rsCliente.Update
rsCliente.Close
Set rsCliente = Nothing
end if
最佳答案
除了您选择的方法效率低下之外,您是否还可以看看您尝试更新的变量是否实际上与数据库索引或数据库中的主/外键不冲突? 如果您尝试将空字符串传递到设置为非空的字段中,它将中止过程。
例如,字段 tipoPe = request.Form("tipo") 或 email = request.Form("email") 可能是表中的必填字段或设置为唯一字段。我没有看到任何验证...
最好的解决方案是使用存储过程,它会在失败或成功时返回一个字符串。 还有你试图验证她什么:
senha_S = request.form("senha")
senha_C = request.form("confsenha")
senha = request.form("confsenha")
if **senha1** & "" <> "" or **senha2** & "" <> "" then
if senha_S <> senha_C then
senha1和senha2来自哪里? 对于密码验证,以下内容就足够了:
if senha_S <> senha_C and len(senha_S)<8 then
使用 len(senha_S)<8 您还可以强制执行密码的最小长度。 另外,我建议您对重定向进行以下更改:
response.redirect "Registro.asp?msg='A Senha e a Confirmação de Senha não são iguais. Por favor, preencha novamente!'"
否则,您可能会在重定向页面上仅收到消息的一小部分,例如仅第一个字母 A。
关于mysql - 使用经典 ASP 更新和插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23170560/