2012-06-13 4 views
2

는이 같은 업데이트 쿼리 할 필요가 :행이 업데이트되었는지 알 수있는 방법이 있습니까?

"UPDATE users SET email_code='1' WHERE id=".$id." AND email_code='".$email_code."'"; 

및 행이 업데이트되면, 그때 그 행이 갱신되는 경우 알 필요가 그래서 $_SESSION['verified']=1

을 설정합니다.

알 수있는 방법이 있습니까? 아니면 그 행이 있는지 먼저 SELECT 쿼리를 만들어야합니까?

+0

http://php.net/manual/en/function.mysql-query.php는 테이블 행의 업데이트 된 경우 이벤트의 일종을 발사 관찰자가 필요합니까? 아니면 그냥'UPDATE'가 성공했는지 확인하고 싶습니까? 또는 업데이트 할 행이없는 경우 삽입 하시겠습니까? – feeela

답변

1

users 테이블의 UPDATE에 MySQL에서 트리거를 설정하고 MySQL이 해당 세션에 액세스 할 수있는 변수를 설정하는 스크립트를 실행할 수 있습니다. 그러나 그것은 뒤에서 불필요하게 큰 고통이 될 것입니다.

필요한 행을 확인하고 필요한 세션을 업데이트하는 데 필요한 페이지에 AJAX 하트 비트를 작성합니다. 그런 식으로 청소부.

6

mysqli_affected_rows을 사용하면 쿼리를 실행 한 후에 변경된 행이 있는지 확인할 수 있습니다. 기능의 mysql_mysqli_ 가족 중

if(mysqli_affected_rows($link) > 0){ 
    // do session stuff 
} 
+4

PDO 라이브러리에서 [rowCount()] (http://www.php.net/manual/en/pdostatement.rowcount.php)를 선택하십시오.) – raina77ow

+0

이런 식으로 나는 Mysqli 클래스를 사용해야한다. 안 그래요? – xRobot

+0

당신이 원하는 클래스를 자유롭게 사용할 수 있습니다. mysql_ *을 사용하고 싶다면 원하는 경우 mysql_affected_rows를 사용할 수 있지만 권장하지 않습니다. –

관련 문제