我是php的新手。我只是想知道哪个PHP脚本可以检测MySQL数据库的表是否包含数据。如果是,它将使用提交的表单数据更新数据。如果不是(空白),它会将表单数据插入其中。
我知道如何使用php插入数据只是想知道如何检查表中是否存在数据。
谢谢你,祝你有个愉快的一天。
答案 0 :(得分:3)
您正在寻找INSERT ... ON DUPLICATE KEY UPDATE。
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
只需将ON DUPLICATE KEY UPDATE x=y, z=a
附加到当前INSERT
,如果您尝试插入的唯一值已存在,则会更新包含它的行。
答案 1 :(得分:0)
MySQL可以根据您的检查方式(主键?)提供帮助 - 请参阅http://www.xaprb.com/blog/2006/02/21/flexible-insert-and-update-in-mysql/
答案 2 :(得分:0)
检查数据库中是否存在数据是一种读操作,因此您将使用SELECT语句。如果SELECT语句返回非空记录集,则表示数据存在。额外奖励:您还知道您要查找的数据的ID号,以便在更新操作中使用。
如果您知道要更新的行的唯一ID号,那么INSERT ... ON DUPLICATE KEY UPDATE非常棒。
使用SELECT语句的唯一问题是操作不保证是原子的 - 也就是说,这可能发生:
- 运行SQL语句并获取空集
- 将数据形成数据库的不同过程插入到数据库中
- 第一个运行select语句的进程插入相同的表单数据