PHP如何判断是否重复插入记录?

课程表里面其中有两个字段ctime(只有三个可选值:上午,下午,晚上),week(周一到周天),由于一个时间点只对应一门课程(如周一上午只有一门课),所以要同时判断cti... 课程表里面其中有两个字段ctime(只有三个可选值:上午,下午,晚上),week(周一到周天),由于一个时间点只对应一门课程(如周一上午只有一门课),所以要同时判断ctime和week是否重复插入,请指教,谢谢! 展开
 我来答
ixyqq_net
2014-09-09 · TA获得超过888个赞
知道小有建树答主
回答量:1160
采纳率:0%
帮助的人:1281万
展开全部

在插入数据之前,可以从数据库查询,

如果没有这条数据我们进行插入操作,存在就跳过。

<?php
$sql = "SELECT *  FROM table WHERE ctime = '上午' AND week = '周一'";
$result = mysql_query($sql);
if (!$result) {
//没有查询到此记录,进行插入操作
}
?>

望采纳 Thx

追问
这样不是要进行21次查询了吗
追答
你可以写个函数封装起来这样就不会写那么多代码,查询是必要的
阳光上的桥
推荐于2016-01-27 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
可以给数据设定限制,把week+ctime设置为唯一索引,这样重复记录就无法插入;

在上面的数据库限制基础上,如果PHP插入语句不变,那么重复的时候会返回重复冲突,只要SQL的插入语句之后检测mysql_error就知道是否发生了冲突(插入失败)。也可以把插入语句改为REPLACE,这样当遇到重复的时候就直接修改之前的数据,不会导致失败。
更多追问追答
追问
可以将week和ctime同时设为唯一索引吗,因为一周里面肯定会有上午好多节课,或者一天里面好多节课,这样就不能设它们为唯一索引了
追答
不是同时设置为唯一索引,是两个字段上建立联合索引,索引的属性是唯一。

CREATE UNIQUE INDEX IDXxxxxxx ON TABxxxxx(ctime,week);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式