2015-02-05 3 views
-4

나는 내가 나의 새로운 값을 설정하려는 내 현재 테이블에없는 UPDATE 쿼리는

mysql_query(INSERT INTO `cost` 
      SET `cat_id` = '18', `feature_id` = '77', `type_id` = '5', 
       `cost_from` = '600', `cost_to` = '800' 
      WHERE `type_id` = 5 && `cat_id` = 18 && `feature_id` = 77"); 

type_id = 5 Mysql-

내 UPDATE 쿼리에 문제에 직면가 작동하지 않습니다.
결과는 입니다.

내가 같은

mysql_query(Update `cost` 
      SET `cat_id` = '18', `feature_id` = '77', `type_id` = '5', 
       `cost_from` = '600', `cost_to` = '800' 
      WHERE `type_id` = 5 && `cat_id` = 18 && `feature_id` = 77"); 

에 대한 UPDATE 쿼리를 시도 내가 뭘 삽입 및 업데이트 값을 동시에하려면 어떻게해야합니까?

+1

도움이 될 .. 당신은 하나의 SQL 문에 모두를 동봉 수 없습니다 (당신은 트랜잭션에 삽입 및 업데이트 쿼리를 동봉해야한다) 및 업데이트 시각? 그것은 어떤 의미가 없습니다! – Rizier123

+0

만약 내가 아무도 그때 내가 알고있는대로 삽입해야하고 다음 필드를 업데이 트해야합니다. – MuteX

+0

@ Rizier123, 동적 프로그래밍에서 고정되지 않은 필드를 업데이트해야하므로 새 필드가 업데이트 된 경우 다른 필드를 업데이트하고 새로운 필드를 삽입해야합니다. 그게 내가 왜 동시에 두 쿼리가 필요합니다. – MuteX

답변

1

참고 :

  • 당신은 INSERT 쿼리와 SET를 사용하지 않습니다.
  • cat_id, feature_id, cost_from, cost_to, type_id 열과 함께 cost이라는 테이블이 있는지 확인하십시오.
  • 찾으려는 테이블 열로 cost 테이블 열을 업데이트하려고합니다. 보이지 않는다.
  • 첫 번째 및 두 번째 주어진 샘플 코드의 형식이 같으므로 방금 첫 번째 단어 인 INSERTUPDATE을 변경했습니다. 그런 식으로 작동하지 않습니다.

코드를 볼 수있는 모든 사람들의 추천은 mysql_* prepared statements을 사용하여 더 나은 쿼리를 작성할 수 있다고 생각합니다.

과 같을 것 인 INSERT 쿼리의 간단한 예 :

/* PREPARE YOUR QUERY */ 
$stmt = $con->prepare("INSERT INTO cost (cat_id, feature_id, type_id, cost_from, cost_to) VALUES (?,?,?,?,?)"); 

/* BIND PARAMETER TO THE QUERY. REPLACE NECESSARY VALUE OR VARIABLE */ 
$stmt->bind_param('iiiss', $catid,$featureid,$typeid,$costfrom,$costto); 

$stmt->execute(); /* EXECUTE QUERY */ 

업데이트 쿼리의 간단한 예 : 모든

/* PREPARE YOUR QUERY */ 
$stmt = $con->prepare("UPDATE cost SET cat_id=?, feature_id=?, type_id=?, cost_from=?, cost_to=? WHERE id=?"); 

/* BIND PARAMETER TO THE QUERY. REPLACE NECESSARY VALUE OR VARIABLE */ 
$stmt->bind_param('iiissi', $catid,$featureid,$typeid,$costfrom,$costto,$id); 

$stmt->execute(); /* EXECUTE QUERY */ 
0

먼저, 당신이 '설정'사용할 수 없음 ' insert into '를 사용하고 쿼리를 동시에 삽입 및 업데이트하려는 경우 가장 좋은 방법은 트랜잭션을 사용하는 것입니다. 같은에서

이 게시물을 삽입 할 어떻게 당신에게 SQL Update,Delete And Insert In Same Time

+0

이 작업이 mysql 쿼리에 있습니까? – MuteX

+0

예 트랜잭션은 mysql에서 작동합니다. – Aakash