2012-04-28 65 views
1

我是小白,当谈到MySQL和PHP,只是想问问如果我这样做正确的:两个简单的MySQL查询

  1. 我想从一个表中选择,其中“lastTurn”是超过12小时。这是做这件事的正确方法。我最concernt与12小时时间戳

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

  2. 我用Asihttprequest将数据发送到服务器。如果我发送一个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 2012-04-28 21:44:17

+0

谢谢。是否有可能出现错误的撇号,还是只是不必要的? – BlackMouse 2012-04-28 21:55:20

+0

这是没有必要的。它可能仍然有效,但是你的数据库会将它作为一个字符串读取,然后意识到它可以转换为一个数字,因为列类型,而不是立即将其转换为数字。 – halfer 2012-04-28 21:58:17

回答

1
  1. 这看起来是正确的

  2. 你需要转换成int如果你想确保你节省整数

代码示例:

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

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