2017-04-27 1 views
0

아래에서 문제점을 언급했습니다.작성 방법 하나의 단일 쿼리에서 삽입 및 업데이트 쿼리

PHP를 사용하여 인벤토리 시스템을 개발 중입니다.

따라서 테이블에 인보이스 발행 상품을 추가해야합니다.

받은 항목 세부 정보를 수집하는 데 사용되는 동적 생성 된 텍스트 상자입니다.

나는 current_stock 테이블을 가지고 있으며 Item-name과 qty 컬럼을 포함하고있다.

항목 이름은 기본 키 필드입니다.

이미 존재하는 경우 삽입하려는 항목은 새로운 값으로 업데이트되어야합니다.

존재하지 않는 경우 새 행으로 삽입해야합니다.

동적으로 genarated 텍스트 상자를 사용하고 $ item [] 및 $ qty [] 배열을 사용하여 데이터를 수집하므로 루프에서 수행해야합니다.

for 루프에서 실행할 수 없지만 아직 성공하지 못한이 문제를 해결하기 위해 여러 가지 방법을 사용하려고합니다.

이 같은

mysqli_multi_query() 

을 사용해야합니다 ......... 여러 쿼리 큐션에 대한

+0

다음을 확인하십시오. https://www.xaprb.com/blog/2006/02/21/flexible-insert-and-update-in-mysql/ – Jenish

+0

Welcome to Stackoverflow. 문제의 맥락을 제공하는 동안 다른 사람들이 귀하의 문제를 더 잘 이해할 수 있도록 돕기위한 코드를 보여주십시오. https://stackoverflow.com/help/how-to-ask –

답변

0

를 좀 도와주세요 :

내가이 일을 희망
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'; ") –

1

당신이 시도 할 수 있습니다 :

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

당신이 ON DUPLICATE KEY UPDATE를 지정하는 경우, 그리고 행은 UNIQUE 인덱스 나 PRIMARY KEY에서 중복 값을 일으킬 것이라고 삽입, MySQL은 이전 행의 업데이트를 수행한다.

+0

주요 문제를 사용해야합니다. 중복 된 KET UPDATE를 실행할 수 없습니다. 내 문제입니다. if_array ($ qty) && ($ item)) { for ($ i = 0; $ i

+0

중복 키 업데이트를 실행할 수없는 이유는 무엇입니까 – MohanaPriyan

+0

항목 이름이 기본 키 필드이므로 unique.it도 올바르게 작동합니다. – Nidhi

관련 문제