2012-04-28 3 views
1

나는 그것이 MySQL과 PHP에 관해서 멍청한 놈이야, 그냥 내가 할 경우 물어보고 싶은이 올바른 :두 가지 간단한 MySQL의 쿼리

  1. 것은 내가 "lastTurn는"어디 테이블에서 선택합니다 12 시간 이상. 이것이 올바른 방법일까요? 나는 대부분 12 시간의 타임 스탬프 나 서버에 데이터를 전송하는 Asihttprequest를 사용

    $queryQuit = mysql_query("SELECT match_id, lastTurn FROM active_matches WHERE matchStatus=0 AND noticeSent < 2 AND lastTurn < NOW() - INTERVAL 12 HOUR");

  2. 와 concernt하고 있습니다. int를 보내면 데이터베이스로 변환하기 전에 변환해야합니까? 사전에

    //score is an int 
    $score = mysql_real_escape_string($_POST['score']); 
    
    //Update a table where the field is an int 
    "UPDATE hiscore SET score=score + '$score' WHERE username='$username'" 
    

덕분에

+1

질문 2 : 예, 그것은 int로 변환 ('$ 점수 = (int)에 $ _POST [ '점수']'대신 탈출 선)과 제거 'UPDATE' 문에서'$ score' 주위의 아포스트로피. – halfer

+0

감사합니다. 아포스트로피에 잘못 될 수있는 것이 있습니까? 아니면 불필요한 부분입니까? – BlackMouse

+0

그것은 필요하지 않습니다. 아마 여전히 작동 할 것이지만, 데이터베이스는 문자열을 문자열로 읽은 다음, 즉시 숫자로 변환하는 대신 열 유형으로 인해 숫자로 변환 될 수 있음을 알게됩니다. – halfer

답변

1
  1. 이 제대로 표시

    당신은 당신이 정수

을 저장하고 있는지 확인하려는 경우 int로 캐스팅 할 필요가
  • 코드 예 :

    $score = mysql_real_escape_string((int) $_POST['score']); 
    

    또는

    $score = mysql_real_escape_string(intval($_POST['score']));