php - 如何更新 PHP/mysql 中的行?

标签 php html mysql sql

我将 Outlook 联系人文件导入到我的数据库中,然后将其显示到 html 表中。该表已创建,一切正常,但是当我尝试第二次上传时,所有名称和信息都会加倍。所以我想做的是如果名字和姓氏已经存在只是更新该行和该行中的所有单元格,而不是一遍又一遍地插入该行。

"CREATE TABLE contacts(PID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY(PID),first_name CHAR(80),middle_name CHAR(80),last_name CHAR(80)"

我尝试过重复 key 更新/替换,但没有成功。

"INSERT INTO contacts (first_name,middle_name,last_name)
VALUES ('$first_name','$middle_name','$last_name')"

我想我的问题出在 auto_increment 和主键上,但我不太明白它们是如何工作的以及如何做到这一点。

最佳答案

您的INSERT永远不会“更新”您现有的记录,因为您错过了“重复键”业务:

INSERT INTO sometable (field1, field2) 
ON DUPLICATE KEY UDPATE field1=VALUES(field1), field2=VALUES(field2)

当然,只有当 INSERT 实际上会导致重复键冲突时,这才有效。表中唯一的唯一索引是主键,并且您根本没有向其中插入值,因此永远不会出现重复键违规。

您可能需要一个UPDATE查询:

UPDATE yourtable
SET field1='value for field1', field2='value for field2'
WHERE id=$your_record_id

关于php - 如何更新 PHP/mysql 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063827/

相关文章:

javascript - HTML 如何将 iframe 中的链接定位到另一个 iframe

PHP 换行\n 和\r\n 不工作

javascript - 为什么javascript不能设置HTML表单元素的值?

php - 在 Laravel 中使用 Eloquent 检索关系的不同关系

javascript - 使用 Javascript 从元数据中抓取信息

mysql - 为什么在简单的 UPDATE 上会发生 InnoDB 死锁?

带条件连接的 Mysql 查询

mysql - 在Mysql中修改记录的并发控制最优雅的方法是什么?

php - PHP中数字的递归和阶乘

php - 通过php检查用户名是否存在于mysql表中?