PHP如何判断输入数据库的字段值不能重复

发布网友 发布时间:2022-04-06 01:55

我来回答

9个回答

热心网友 时间:2022-04-06 03:24

将关于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 函数是做什么用的

热心网友 时间:2022-04-06 04:42

楼上几位说的都差不多了,我总结补充一下哈。

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 {
}
不就好了

热心网友 时间:2022-04-06 06:17

最简单的就是把数据库中这个字段值设置为UNIQUE属性,输入的时候如果重复就会直接返回错误。
麻烦点的就是先把输入的值作为条件来查询,如果返回有值就是有重复,没有返回值就是没有重复,再输入就好。

热心网友 时间:2022-04-06 08:08

你在设计数据表结构时,要把不能重复的字段设成UNIQUE,从根源上杜绝重复的可能性;
程序这一块,可以事先SELECT判断一下,或者在执行INSERT后判断一下均可,因为某字段是UNIQUE的,如果字段值有重复是无法写入数据库的

热心网友 时间:2022-04-06 10:16

这个文件很简单,比如是user表,字段有:id 主键,自动增长,username用户名,password密码
那么你注册用户不允许存在两个相同的用户名的话,在插入数据之前,先进行查找。比如你获得了用户名$username="admin",那么先查找select count(username) from user where username = "admin",如果查找的结果大于0,则说明这个用户已经存在了,那么就不插入啊,很简单的道理

热心网友 时间:2022-04-06 12:41

最好的方法是在数据库对该字段添加唯一约束,然后在插入的时候判断,
是否触发唯一约束,触发就告知已有相同数据,否则插入成功,
这样无论是性能还是处理逻辑都是最好的。
当然按楼上的也能达到效果,但不是最佳方案,最少浪费一次数据库链接。

热心网友 时间:2022-04-06 15:22

php发送 1
首先进行查询 where name= 1
如果存在 返回false 如果不存在返回true
如果是false 说明存在,就可以echo 已经存在
如果是true 就保存

热心网友 时间:2022-04-06 18:20

我想数据库那边字段设置成唯一比较直接吧,要不就得一个个比较了

热心网友 时间:2022-04-06 21:35

执行添加时先查看数据库里有没有这个值若没有再添加啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com