php
  • mysql
  • 2011-09-07 7 views -1 likes 
    -1

    데이터베이스의 메시지 테이블을 업데이트하고 message_read 셀을 1로 설정하려고합니다.PHP : 데이터베이스 테이블 업데이트

    하지만 제대로 작동하지 않습니다. 그것은 항상 1로 바뀌어야하는 0을 말합니다.

    저는 변수가 옳다는 것을 확신합니다.

    $q = "UPDATE messages SET message_read='1' WHERE id='$messageid' AND to_user='$usermsg'"; 
    mysql_query($q); 
    

    오류가 발생하지 않습니다.

    는 "usermsg는"
    가 "의 MessageID는"메시지의 ID를 = 세션 이름을 =

    +1

    그냥 ... mysql에 연결하고 올바른 데이터베이스를 먼저 선택하는 것입니다. 맞습니까? –

    +0

    당신은'$ messageid'와'$ usermsg'의 값을 이스케이프하고 있습니까? 데이터베이스에 이러한 행이 있는지도 확실합니까? – cdhowie

    +0

    예, 연결 파일을 올바른 데이터베이스에 포함 시켰습니다. – Kaizokupuffball

    답변

    -1

    나는 이것이 올바른 구문 생각 :

    $q = "UPDATE messages SET message_read = 1 WHERE id = ".$messageid." AND to_user='".$usermsg."'"; 
    

    따옴표를 사용하지 마십시오 필드 유형 INT 야.

    +0

    -1 MySQL은 문자열을 암시 적으로 숫자로 변환합니다. – cdhowie

    0

    이 시도 : 조회에 문제가 있었다면

    $q = "UPDATE messages SET message_read='1' WHERE id=".mysql_real_escape_string($messageid)." AND to_user='".mysql_real_escape_string($usermsg)."';"; 
    
    $result = mysql_query($q); 
    
    if(!$result) 
    { 
        die(mysql_error()); 
    } 
    else 
    { 
        echo 'Number of affected rows:'.mysql_affected_rows(); 
    } 
    

    당신은 화면에 출력 오류를 볼 수 있습니다. 그렇지 않은 경우 쿼리의 영향을받는 행 수를 확인할 수 있습니다.

    또한 SQL 주입 프로젝션을 추가했습니다.

    관련 문제