用于使用on duplicate key update的php脚本

时间:2013-11-24 10:20:34

标签: php

我有一张学生桌,上面有学生的记录。我遇到了重复更新密钥功能的问题。通过我的系统工作方式,我在保存q记录后随机分配2个学生的唯一号码。

我的查询luk喜欢这个

$长度=(10000000,999999999); $随机= SUBSTR(uniqid,0,$长度); 此查询创建一个完美的字母数字唯一键4 me。

我的保存查询是

$ save =“插入学生(REG_NUMBER,用户名,姓氏) VALUES('$ random','username','$ surname') 在DUPLICATE KEY UPDATE username ='$ username'“; $ result = mysql_query($ save)或die(mysql_error());

查询的保存部分工作正常, 但它不会更新现有记录, 而是它创建一个新的随机ID而不更新 旧记录。请问我怎么做...需要帮助因为我是新的2 php

2 个答案:

答案 0 :(得分:0)

首先,reg_number必须是唯一的主键 - 所以确保它是。

其次,你使用$ random作为reg_number,你能保证它不是重复吗?

第三,确保您的reg_number列没有设置AUTOIncrement属性

答案 1 :(得分:0)

InnoDB表的效果并不相同,其中primary_key / unique_key是自动增量列。使用自动增量列,INSERT语句会增加自动增量值,但UPDATE不会

检查您的引擎以及PK中的自动增量