如何在mysql中的单个查询中编写插入和更新查询

问题描述:

我有下面提到的问题。如何在mysql中的单个查询中编写插入和更新查询

我使用php开发库存系统。

据此我必须添加发票项目表。

动态生成的文本框用于收集收到的项目详细信息。

我有current_stock表,它包含项目名称和数量列。

项目名称是主键字段。

如果已经存在数量,我将要插入的项目应该用新值更新。

如果不存在,应插入为新行。

这是必须在循环中完成的,因为我使用$ item []和$ qty []数组动态生成文本框和数据。

我尝试使用几种方法来解决此问题,无法在for循环中执行但尚未成功。

请帮我.........

+0

检查此:https://www.xaprb.com/blog/2006/02/21/flexible-insert-and-update-in-mysql/ – Jenish

+0

欢迎来到*。请显示您的代码,以证明您尝试了多远,并帮助其他成员更好地理解您的问题,同时提供您的问题背景。 https://*.com/help/how-to-ask –

多个查询excution你必须使用

mysqli_multi_query() 

这样的:

mysqli_multi_query("INSERT INTO TABLE SET Field='Value',FieldB='ValueB'; 
UPDATE TABLE SET Field='Value',FieldB='ValueB' WHERE FIELDID='VALUEID';") 

我希望这会工作。玩的开心。

+0

它工作吗? –

+0

是的,但你必须使用连接字符串,如 –

+0

mysqli_multi_query($ con,“INSERT INTO TABLE SET Field ='Value',FieldB ='ValueB'; UPDATE TABLE SET Field ='Value',FieldB ='ValueB' Where FIELDID ='VALUEID';“) –

你可以试试这个:

INSERT INTO table (id, item_name, qty) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE  
item_name="A" 

如果指定ON DUPLICATE KEY UPDATE,行插入会导致在唯一索引或主键的重复值时,MySQL执行旧行的更新。

+0

主要问题是无法执行ON DUPLICATE KET UPDATE,因为这是我的问题....($ i = 0; $ i

+0

为什么你不能执行重复密钥更新,是否有任何错误 – MohanaPriyan

+0

你的项目名称是主键字段,所以使它独特也。它会正常工作。 – Nidhi