2014-10-12 3 views
0

PDO를 사용하여 데이터베이스의 행을 업데이트했습니다. PDO에서 업데이트 된 행의 ID를 얻으십시오.

$stmt = $db->prepare("UPDATE product SET price=? WHERE seller=?"); 
      $stmt->execute(array(456,"Apple")); 

내가 업데이트 된 행의 ID를 얻을 수있는 방법 나

$updated_id = $db->lastInsertId(); 

위해 일하지 않았다.

+0

판매자 만 한 제품이있다 (당신이 하나의 레코드 만이있을 것이다 생각한다면) = 애플 –

+0

오, 그래, 난 당신이 하나의 쿼리에서 그 ID를 얻을 수 있다고 생각하지 않아요, 당신은 그 삽입을 선택해야합니다, 마지막 삽입 ID는 – Ghost

+0

그냥 먼저 ID를 선택 후 업데이트 (또는 그 반대) –

답변

1

PDO::rowCount()을 사용하면 영향을받는 행 수를 얻을 수 있습니다. 업데이트 문은 하나만 업데이트 할 수 있으므로 단일 ID를 얻는 방법은 없습니다.

+0

제 경우에는 단 하나의 행만 업데이트됩니다. 어떤 해결책이 있습니까? –

+0

한 행을 업데이트해야한다는 사실을 알고 있으면 입력 한 데이터를 사용하여 다시 질의 할 수 있습니다. 제품에서 id를 선택하십시오. 여기서 price =? 및 판매자 =?; – brian

+0

예, 효과가있었습니다. 나는 table.Now에 6 개의 행을 가지고 있는데 쿼리를하고 상태가 1 인 제품을 찾고 그 중 첫 번째 결과에 "Apple"을 할당하려고합니다. 어떻게 할 수 있습니까? –

0

이 답변 How to get ID of the last updated row in MySQL?

를 살펴하거나 동일한에서 선택을하시기 바랍니다 where 절

$stmt = $db->query("SELECT id FROM product WHERE seller=:seller"); 
$stmt->bindParam(':seller', $sellerName, PDO::PARAM_STR) 
$row =$stmt->fetchObject(); 
echo $row->id; 
관련 문제