2012-04-28 14 views
1

は、私はそれがMySQLとPHPに来るときのnoobだし、ちょうど私がこの正しい操作を行う場合にはお願いしたいと思います:2つの単純なMySQLのクエリ

  1. は、私が「lastTurn」は、テーブルからSELECTしたいです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. 12時間のタイムスタンプを持つ最もconcerntです。 intを送ると、データベースに入る前に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'])); 
    
  • 関連する問題