PHP如何判断输入数据库的字段值不能重复
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何判断输入数据库的字段值不能重复相关的知识,希望对你有一定的参考价值。
表单里填写的值不能与表中的值相同,如果相同则不执行INSERT语句
将关于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'追问
非常感谢你的回答
我现在的情况是一个表单提交时除了一个主表需添加数据,另还有两个子表也需同时加数据,现在就是判断主表的一个字段不能有重复值,数据库里已设定了唯一健,主要是页面程序的编写,如果主表里这个字段有重复值不能填写,那同时两个子表的值也不执行添加
无所谓啊。以下是伪码
$count = $db->query('select count(*) from table where value = 'value');
if (empty($count))
insert into main table,
insert into other tables....
else
不就好了
麻烦点的就是先把输入的值作为条件来查询,如果返回有值就是有重复,没有返回值就是没有重复,再输入就好。 参考技术C 你在设计数据表结构时,要把不能重复的字段设成UNIQUE,从根源上杜绝重复的可能性;
程序这一块,可以事先SELECT判断一下,或者在执行INSERT后判断一下均可,因为某字段是UNIQUE的,如果字段值有重复是无法写入数据库的 参考技术D 这个文件很简单,比如是user表,字段有:id 主键,自动增长,username用户名,password密码
那么你注册用户不允许存在两个相同的用户名的话,在插入数据之前,先进行查找。比如你获得了用户名$username="admin",那么先查找select count(username) from user where username = "admin",如果查找的结果大于0,则说明这个用户已经存在了,那么就不插入啊,很简单的道理
php如何判断一个字段是不是存在
我想做一个程序,运行时候判断表A里面是否存在字段B,如果不存在就建立一个字段B。 不知道怎么写
(我说的不是字段里的数据,是这个字段名称)
没钱悬赏,各位行行好,帮个忙吧
在数据库information_schema
表COLUMNS
记录有所有表字段名称的信息。
例如
SELECT * FROM `COLUMNS` WHERE TABLE_NAME='表A' AND COLUMN_NAME='字段B' 参考技术A isset() 判断变量是否存在;
empty() 判断变量是否 假,包括 0,false,null 和 空字符串本回答被提问者采纳
以上是关于PHP如何判断输入数据库的字段值不能重复的主要内容,如果未能解决你的问题,请参考以下文章