2017-10-25 5 views
1

여기에 제 기능에 문제가 있습니까? 블로그 페이지가있는 간단한 작업 관리자도 만들었습니다. 이것은 task 테이블의 Tasks를 업데이트하는 데 사용하는 것과 동일한 함수이며, 방금 Blog 테이블을 업데이트하도록 수정되었습니다.왜 내 UPDATE SQL 쿼리가 작동하지 않습니까? 테이블을 업데이트하지 않습니다

function update_blog($blogpost) { 
    global $db; 

    $sql = "UPDATE Blog SET "; 
    $sql .= "blog_date='" . db_escape($db, $blogpost['blog_date']) . "', "; 
    $sql .= "blog_content='" . db_escape($db, 
    $blogpost['blog_content']) . "' "; 
    $sql .= "WHERE id='" . db_escape($db, $blogpost['id']) . "' "; 
    $sql .= "LIMIT 1"; 

    $result = mysqli_query($db, $sql); 

    if($result) { 
     return true; 
    } else { 
     // UPDATE failed 
     echo mysqli_error($db); 
     db_disconnect($db); 
     exit; 
    } 
} 

edit.php에서, 사용자는 자신의 블로그 포스트 편집을 제출시 blog.php로 리디렉션됩니다. 그러나 편집 내용은 표시되지 않으며 테이블 자체는 업데이트되지 않습니다. 나는 여기서 간단한 것을 놓치고 있습니까?

+0

오류를 확인하셨습니까? – ProEvilz

+0

'$ result'는 true 또는 false입니까? 실행중인 실제 런타임 SQL 쿼리는 무엇입니까? 이 쿼리를 수동으로 실행하면 어떻게됩니까? – David

+2

실행하기 전에 sql을 반향하려고 시도하고 – Thamaraiselvam

답변

0

데이터베이스에 db_escape($db, $blogpost['id'])이없는 레코드와 관련이있을 수 있습니다 (쿼리가 실패하지 않은 경우). 나는 당신이 어떤 행을하지 않는 경우

SELECT * 
FROM Blog 
WHERE id = <value of db_escape($db, $blogpost['id'])>; 

, 그건 아마 존재하고, 따라서, 아니 갱신에 대한 기록이 없음을 의미 : 존재 얼마나 많은 행이 참조하는 간단한 SELECT을 실행 예컨대에게 추천 할 것입니다. 이 경우 폼에있는 것에 따라 다른 값을 전달해야 할 수도 있습니다.