9个回答
展开全部
将关于mysql函数 全部改成mssql前缀
$sqlwhere = "select * from $dbzh where ……";//具体哪些字段重复,在where后面加上条件即可
$result = mssql_query($sqlwhere);
$num = mssql_num_rows($result);
if ($num == 0){
//新增操作
}只要查询它的ID是否存在,如果存在的话,就重复了,如果不存在的话,就说明没重复
mssql_get_last_message 函数是做什么用的
展开全部
楼上几位说的都差不多了,我总结补充一下哈。
1.如果一个表的某个字段(或几个字段的组合)禁止重复数据,请将其定义为唯一键,从根本上保证数据的唯一性。
2.插入之前使用select语句查询一下,唯一键也是一种索引,所以查询速度很快,消耗几乎可以忽略。
3.为什么不推荐直接insert数据:insert失败可能是多种原因引起的,你不能因为插入失败就告诉前端页面xxx不允许重复,这是很糟糕的用户体验。
补充,请注意insert之前的唯一性检查和update之前的唯一性检查不同,update之前的检查请记得要排除当前行,例如select count(*) from user where id <> current_user_id and email = 'newEmail'
1.如果一个表的某个字段(或几个字段的组合)禁止重复数据,请将其定义为唯一键,从根本上保证数据的唯一性。
2.插入之前使用select语句查询一下,唯一键也是一种索引,所以查询速度很快,消耗几乎可以忽略。
3.为什么不推荐直接insert数据:insert失败可能是多种原因引起的,你不能因为插入失败就告诉前端页面xxx不允许重复,这是很糟糕的用户体验。
补充,请注意insert之前的唯一性检查和update之前的唯一性检查不同,update之前的检查请记得要排除当前行,例如select count(*) from user where id <> current_user_id and email = 'newEmail'
追问
非常感谢你的回答
我现在的情况是一个表单提交时除了一个主表需添加数据,另还有两个子表也需同时加数据,现在就是判断主表的一个字段不能有重复值,数据库里已设定了唯一健,主要是页面程序的编写,如果主表里这个字段有重复值不能填写,那同时两个子表的值也不执行添加
追答
无所谓啊。以下是伪码
$count = $db->query('select count(*) from table where value = 'value');
if (empty($count)) {
insert into main table,
insert into other tables....
} else {
}
不就好了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的就是把数据库中这个字段值设置为UNIQUE属性,输入的时候如果重复就会直接返回错误。
麻烦点的就是先把输入的值作为条件来查询,如果返回有值就是有重复,没有返回值就是没有重复,再输入就好。
麻烦点的就是先把输入的值作为条件来查询,如果返回有值就是有重复,没有返回值就是没有重复,再输入就好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在设计数据表结构时,要把不能重复的字段设成UNIQUE,从根源上杜绝重复的可能性;
程序这一块,可以事先SELECT判断一下,或者在执行INSERT后判断一下均可,因为某字段是UNIQUE的,如果字段值有重复是无法写入数据库的
程序这一块,可以事先SELECT判断一下,或者在执行INSERT后判断一下均可,因为某字段是UNIQUE的,如果字段值有重复是无法写入数据库的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个文件很简单,比如是user表,字段有:id 主键,自动增长,username用户名,password密码
那么你注册用户不允许存在两个相同的用户名的话,在插入数据之前,先进行查找。比如你获得了用户名$username="admin",那么先查找select count(username) from user where username = "admin",如果查找的结果大于0,则说明这个用户已经存在了,那么就不插入啊,很简单的道理
那么你注册用户不允许存在两个相同的用户名的话,在插入数据之前,先进行查找。比如你获得了用户名$username="admin",那么先查找select count(username) from user where username = "admin",如果查找的结果大于0,则说明这个用户已经存在了,那么就不插入啊,很简单的道理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询