【发布时间】:2015-12-19 14:38:38
【问题描述】:
我有一个重量值表:
TABLE_WEIGHT
WEIGHT_ID bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
WEIGHT float NOT NULL UNIQUE
然后我插入值:
$query = "INSERT INTO TABLE_WEIGHT (WEIGHT) VALUES(100)";
if ($stmt = $this->mysqli->prepare($query)) :
if (!stmt->execute()) :
// some error
else :
// alright
endif;
endif;
我第一次这样做不会有问题。如果我第二次这样做,值 100 已经存在。现在有没有办法在不需要新的 select 语句的情况下获取冲突行的 id?
【问题讨论】:
-
否;你应该使用
SELECT声明。 -
@TwoStraws 好的,谢谢,但我需要知道是否由于独特的冲突而发生错误。否则,即使错误有其他原因,我也会始终执行选择。
-
你试过打电话给
insert_id()吗?它返回什么?insert_id()方法实际上返回最后插入的 id。此外,我建议您检查它是否返回重复的 id,即使在插入重复行时也是如此。祝你好运。