2014-03-04 4 views
1
if($stmt = $this->Sys->db->prepare("INSERT INTO dj_videos (title, url, caption) VALUES (?, ?, ?)")) { 

     $stmt->bind_param('sss', $title, $url, $comment); 
     $stmt->execute(); 
     $stmt->store_result(); 
     $stmt->fetch(); 

     if($stmt->num_rows == 1) { 

      return TRUE; 

     } 
     else { 

      return FALSE; 

     } 

이것은 false를 반환하지만 매번 데이터베이스에 정보를 삽입합니다. 그것은 내 마음을 날려 버린다.이것은 false를 반환합니다.

답변

0

mysqli_stmt::execute 반환 성공할 경우 TRUE를, 실패 할 경우 FALSE 마지막으로 실행 된 명령문에 의해 삽입, 변경. 그래서 당신은 단지 그것의 결과를 반환해야합니다

if($stmt = $this->Sys->db->prepare("INSERT INTO dj_videos (title, url, caption) VALUES (?, ?, ?)")) { 
    $stmt->bind_param('sss', $title, $url, $comment); 
    return $stmt->execute(); 
} 

그런데, 문이 UPDATE, DELETE, 또는 INSERT, 영향을받는 행의 총 수는 mysqli_stmt_affected_rows() 기능을 사용하여 측정 할 수있는 경우.

+0

굉장합니다. 감사. 매일 새로운 것을 배웁니다 :) – user3377300

0

num_rows은 명령문 결과 집합의 행 수를 반환합니다. 행의 수를 반환

당신은 affected_rows을 원하는이, 삭제 또는

$stmt->bind_param('sss', $title, $url, $comment); 
    $stmt->execute(); 
    $stmt->store_result(); 
    $stmt->fetch(); 

    if($stmt->affected_rows == 1) { 

     return TRUE; 

    } 
    else { 

     return FALSE; 

    } 
관련 문제