PHP向MSSQL插入数据时判断 某个字段是否有重复。 求助大神!!

an108500 2014-07-24 11:00:26
<?php
require 'account.php';
//------UID的分配-------
$uida = rand(10,999);
$uidb = rand(2,99);
function seed()
{
list($msec, $sec) = explode(' ', microtime());
return (float) $sec;
}
srand(seed());
$uidc =rand(1,99);
$accountid = $uida.$uidb.$uidc;
//------输出accountid-------
//mysql_query("set names utf8");
if(strlen($_GET['account']) > 0) {
$zhanghao = $_GET['account'];
$mima = md5($_GET['password']);
$mimas = md5($_GET['passwords']);
$email = $_GET['emai'];
$tgren = $_GET['tgren'];
if ($mima != $mimas){
exit("<script type='text/javascript'>alert('两次输入的密码不一致');location.href='register.php?id=$tgren'</script>");
}
$ip = getip();
$con = @mysql_connect($dbhost,$dbuser,$dbpass) or die ("连接出错");//IP
mysql_select_db($dbname,$con);
mysql_query("set names 'latin1'");
$time = date("Ymd");
$sql="INSERT INTO $dbzh (account_id,name,phone,email,address,password,pointtime,netbar_ip) values ('$accountid','$zhanghao','$tgren','$email','$zsyb','$mima','$time','$ip')";
if(mysql_query($sql,$con)==false){
//$title ="Sorry"; //return 'no';
exit("<script type='text/javascript'>alert('注册失败,账号已存在!');location.href='register.php?id=$tgren'</script>");
}else{
exit("<script type='text/javascript'>alert('$zhanghao 恭喜您注册成功!');location.href='login.php'</script>");
//$title ="ok"; //return 'ok';

}
}
exit("<script type='text/javascript'>alert('错误!');location.href='index.php'</script>");
?>
我发的这个源码是PHP+MYSQL的,很无奈,对MSSQL不熟,试了好多命令都搞不定。。求哪位大大帮忙改成PHP+MSSQL的。。我就是想让用户在提交表单的时候,先到数据库查一下,没有重复的就插入,重复的则注册失败。。在线等,万分感谢!!
...全文
278 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-07-25
  • 打赏
  • 举报
回复
你能解释一下 f_username !='$zhanghao' 的含义吗?
an108500 2014-07-25
  • 打赏
  • 举报
回复
引用 2 楼 zy205817 的回复:
将关于mysql函数 全部改成mssql前缀 $sqlwhere = "select * from $dbzh where ……";//具体哪些字段重复,在where后面加上条件即可 $result = mssql_query($sqlwhere); $num = mssql_num_rows($result); if ($num == 0){ //新增操作 }
根据你的,我修改了下,但是好像还是不行,数据插入不进去,提交注册信息后,数据库里没有。你帮我看看代码,是不是有问题。$ip = getip(); $conn=mssql_connect('localhost','sa','aaaaaa') or die("SQL SERVER 数据库连接失败!"); //IP mssql_select_db('userdb',$conn); $sqlwhere = "select * from t_usercore where f_username !='$zhanghao'";//具体哪些字段重复,在where后面加上条件即可 $result = mssql_query($sqlwhere); $num = mssql_num_rows($result); if ($num == 0){ exit("<script type='text/javascript'>alert('注册失败,账号已存在!');location.href='register.php?id=$tgren'</script>"); //新增操作 } else{ $sql="INSERT INTO T_USERCORE( f_username, f_password, f_pwan, f_seconds, f_freeseconds, f_type ) VALUES ( '$zhanghao', '$mima', '$email', 0 , 0 , 1 )"; exit("<script type='text/javascript'>alert('$zhanghao 恭喜您注册成功!');location.href='login.php'</script>"); } } exit("<script type='text/javascript'>alert('错误!');location.href='index.php'</script>");
码无边 2014-07-25
  • 打赏
  • 举报
回复
将关于mysql函数 全部改成mssql前缀 $sqlwhere = "select * from $dbzh where ……";//具体哪些字段重复,在where后面加上条件即可 $result = mssql_query($sqlwhere); $num = mssql_num_rows($result); if ($num == 0){ //新增操作 }
小在在 2014-07-25
  • 打赏
  • 举报
回复
先查询一下 select accountid from .. where accountid=$accountid 获者把这个字段设置成主键
xuzuning 2014-07-25
  • 打赏
  • 举报
回复
当然知道还写出错误的逻辑? 你知道 mssql_get_last_message 函数是做什么用的吗?
an108500 2014-07-25
  • 打赏
  • 举报
回复
引用 12 楼 xuzuning 的回复:
不是帮不帮的问题,关键在于你是否知道你在做什么 否则我也白说了,你也白问了 f_username = '$zhanghao' 表示待检查的用户名是否已在表中 如果在表中,那么 mssql_num_rows($result) 就不会等于 0
这个我当然知道啊, 我自己根据大家的提示,调试了下,现在PHP提示注册成功,但是数据库里又没数据了,郁闷啊。。 $conn=mssql_connect('192.168.1.103','sa','liu987112') or die("SQL SERVER 数据库连接失败!"); //IP mssql_select_db('userdb',$conn); $sql="INSERT INTO T_UserCore( F_UserName, F_PassWord, F_PWAN, F_Seconds, F_FreeSeconds, F_Type ) VALUES ( '$zhanghao', '$mima', '$email', 0 , 0 , 1 )"; 我直接这样插入数据,都保存不到,不知道神马问题。。
xuzuning 2014-07-25
  • 打赏
  • 举报
回复
不是帮不帮的问题,关键在于你是否知道你在做什么 否则我也白说了,你也白问了 f_username = '$zhanghao' 表示待检查的用户名是否已在表中 如果在表中,那么 mssql_num_rows($result) 就不会等于 0
an108500 2014-07-25
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
就是说你根本就不知道 f_username !='$zhanghao' 是什么意思了? 这个表达式成立的条件是:只要字段 f_username 的内容与传入的数据 $zhanghao 不相等 除非 f_username 的内容全部等于 $zhanghao ,否则条件一定成立 也就是 $num = mssql_num_rows($result); 后,一定不等于 0 [quote=引用 5 楼 an108500 的回复:] f_username !='$zhanghao' f_username是MSSQL数据库中的字段,$zhanghao是注册页面表单提交的。。
[/quote] 那应该怎么写啊,哥们,知道就帮忙写下咯,急啊。。
an108500 2014-07-25
  • 打赏
  • 举报
回复
引用 8 楼 hljflp 的回复:
<?php require 'account.php'; //------UID的分配------- $uida = rand(10,999); $uidb = rand(2,99); function seed() { list($msec, $sec) = explode(' ', microtime()); return (float) $sec; } srand(seed()); $uidc =rand(1,99); $accountid = $uida.$uidb.$uidc; //------输出accountid------- //mysql_query("set names utf8"); if(strlen($_GET['account']) > 0) { $zhanghao = $_GET['account']; $mima = md5($_GET['password']); $mimas = md5($_GET['passwords']); $email = $_GET['emai']; $tgren = $_GET['tgren']; if ($mima != $mimas){ exit("<script type='text/javascript'>alert('两次输入的密码不一致');location.href='register.php?id=$tgren'</script>"); } $ip = getip(); $con = @mysql_connect($dbhost,$dbuser,$dbpass) or die ("连接出错");//IP mysql_select_db($dbname,$con); mysql_query("set names 'latin1'"); $time = date("Ymd"); $sql = select count(account_id) from $dbzd where name = '$zhanghao'; $sql_c = mysql_query($sql); if($sql_c){ echo "用户名已经被占用,请更换用户名"; }else{ $sql="INSERT INTO $dbzh (account_id,name,phone,email,address,password,pointtime,netbar_ip) values ('$accountid','$zhanghao','$tgren','$email','$zsyb','$mima','$time','$ip')"; exit("<script type='text/javascript'>alert('$zhanghao 恭喜您注册成功!');location.href='login.php'</script>"); } if(mysql_query($sql,$con)==false){ //$title ="Sorry"; //return 'no'; exit("<script type='text/javascript'>alert('注册失败,账号已存在!');location.href='register.php?id=$tgren'</script>"); }else{ exit("<script type='text/javascript'>alert('$zhanghao 恭喜您注册成功!');location.href='login.php'</script>"); //$title ="ok"; //return 'ok'; } } exit("<script type='text/javascript'>alert('错误!');location.href='index.php'</script>"); ?>
大神,我要插入的是MSSQL数据库. 貌似用这个没用吧。。
xuzuning 2014-07-25
  • 打赏
  • 举报
回复
就是说你根本就不知道 f_username !='$zhanghao' 是什么意思了? 这个表达式成立的条件是:只要字段 f_username 的内容与传入的数据 $zhanghao 不相等 除非 f_username 的内容全部等于 $zhanghao ,否则条件一定成立 也就是 $num = mssql_num_rows($result); 后,一定不等于 0
引用 5 楼 an108500 的回复:
f_username !='$zhanghao' f_username是MSSQL数据库中的字段,$zhanghao是注册页面表单提交的。。
Spring 2014-07-25
  • 打赏
  • 举报
回复
<?php require 'account.php'; //------UID的分配------- $uida = rand(10,999); $uidb = rand(2,99); function seed() { list($msec, $sec) = explode(' ', microtime()); return (float) $sec; } srand(seed()); $uidc =rand(1,99); $accountid = $uida.$uidb.$uidc; //------输出accountid------- //mysql_query("set names utf8"); if(strlen($_GET['account']) > 0) { $zhanghao = $_GET['account']; $mima = md5($_GET['password']); $mimas = md5($_GET['passwords']); $email = $_GET['emai']; $tgren = $_GET['tgren']; if ($mima != $mimas){ exit("<script type='text/javascript'>alert('两次输入的密码不一致');location.href='register.php?id=$tgren'</script>"); } $ip = getip(); $con = @mysql_connect($dbhost,$dbuser,$dbpass) or die ("连接出错");//IP mysql_select_db($dbname,$con); mysql_query("set names 'latin1'"); $time = date("Ymd"); $sql = select count(account_id) from $dbzd where name = '$zhanghao'; $sql_c = mysql_query($sql); if($sql_c){ echo "用户名已经被占用,请更换用户名"; }else{ $sql="INSERT INTO $dbzh (account_id,name,phone,email,address,password,pointtime,netbar_ip) values ('$accountid','$zhanghao','$tgren','$email','$zsyb','$mima','$time','$ip')"; exit("<script type='text/javascript'>alert('$zhanghao 恭喜您注册成功!');location.href='login.php'</script>"); } if(mysql_query($sql,$con)==false){ //$title ="Sorry"; //return 'no'; exit("<script type='text/javascript'>alert('注册失败,账号已存在!');location.href='register.php?id=$tgren'</script>"); }else{ exit("<script type='text/javascript'>alert('$zhanghao 恭喜您注册成功!');location.href='login.php'</script>"); //$title ="ok"; //return 'ok'; } } exit("<script type='text/javascript'>alert('错误!');location.href='index.php'</script>"); ?>
Spring 2014-07-25
  • 打赏
  • 举报
回复
只要查询它的ID是否存在,如果存在的话,就重复了,如果不存在的话,就说明没重复
an108500 2014-07-25
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
你能解释一下 f_username !='$zhanghao' 的含义吗?
我现在的问题就是,判断了以后,插入语句要怎么写,不会写啊。。我测试过,如果我不判断,直接用 $sql="INSERT INTO T_USERCORE( f_username, f_password, f_pwan, f_seconds, f_freeseconds, f_type ) VALUES ( '$zhanghao', '$mima', '$email', 0 , 0 , 1 )"; 是可以成功提交数据的。。
an108500 2014-07-25
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
你能解释一下 f_username !='$zhanghao' 的含义吗?
f_username !='$zhanghao' f_username是MSSQL数据库中的字段,$zhanghao是注册页面表单提交的。。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧