欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php update 有关问题

程序员文章站 2024-01-09 12:58:28
...
php update 问题
需求:添加数据先判断数据库是否有数据,如有就update,如没有就insert
问题:update与insert连起用出问题?
代码:
$query="update user set USER_PRIV_NAME='{$count2}',DEPT_ID='{$count1}',DEPT_ID_OTHER='{$DEPTIDOTHER}' where USER_ID='{$USERID}' and USER_NAME='{$USERID}'";
exequery($crmconnect,$query);
if(!mysql_affected_rows()){
$query="insert into user(USER_ID,USER_NAME)values('{$USERID}','{$USERID}')";
exequery($crmconnect,$query);
}
使用MySQL数据库,当数据库已有A记录时,update完怎么控制不然他执行insert语句?mysql_affected_rows()无法实现,求解
------解决思路----------------------
用 replace 或者 on duplicate key update 代替吧
------解决思路----------------------
先查询有没有数据再决定添加还是修改不就可以了
------解决思路----------------------
你用这个mysql_affected_rows()来判断他是否存在数据库是有bug的。如果修改前和修改后的内容是一致的,即使是已经存在于数据库,他也是返回0,换句话说mysql_affected_rows()返回0,只是告诉你没有任何数据发生更改,不代表他找不到这条数据!
不要弄得太复杂,就先select
根据结果写个if 决定用insert还是update就好!
------解决思路----------------------
php update 有关问题要是是这样的话完全可以采用主键的形式进行replace操作,没有就是insert有就是update,LZ这样操作太过于复杂。
------解决思路----------------------
mysql有个很强大的功能insert into……ON DUPLICATE KEY UPDATE ,它执行插入,如果主键重复,就执行update。不过有个限制时,表最好不要有两个不同的唯一项,否则可能会有问题。
------解决思路----------------------
先select是王道,而且逻辑比较清晰
php update 有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


上一篇:

下一篇: