【问题标题】:adding "5" to INT [closed]将“5”添加到 INT [关闭]
【发布时间】:2013-07-22 12:33:49
【问题描述】:

所以现在当我从 DB 获得积分时,我想将 5 个积分添加到 [points] 并保存到 DB:

function addPoints($email)
{
    $con = mysql_connect("example", "example", "example") ;
    if (!$con)
    {
        die("Can not connected: " . mysql_error());
    }
    mysql_select_db("example",$con);
    $sql = "SELECT points FROM tablename WHERE email = '$email'";
    $myData = mysql_query($sql,$con);
    while($record = mysql_fetch_array($myData))
    {
        $record['points'];      
    }
    mysql_close($con);
}

【问题讨论】:

  • 警告您的代码可能容易受到 sql 注入攻击!
  • 不要使用mysql扩展,使用PDO或者mysqli。并使用准备好的语句。
  • 如果 email 的值是用户输入,那么它易受 SQLi 攻击的。
  • 使用 PDO 或 MySQLi。
  • 您可以尝试编写此更新查询而不是您的 sql 查询:“UPDATE tablename SET points =”。 $你的积分 + 5 。 " WHERE email = '$email'

标签: php mysql


【解决方案1】:

您可以使用UPDATE 查询完成同样的操作

UPDATE tablename SET points = points + 5 WHERE email = 'your_email_here'

【讨论】:

    【解决方案2】:

    试试:

    $newPoints = $record['points'] + 5;
    $sql = "UPDATE tablename SET points = '$newPoints' WHERE email = '$email'";
    mysql_query($sql,$con);
    

    【讨论】:

    【解决方案3】:

    你可以修改你的while循环来实现。

    while($record = mysql_fetch_array($myData)){
        $points = $record['points'];    
    $query = "update tablename set points=". $points +5 ." WHERE email = '$email'";
    mysql_query($query, $con);      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-21
      • 2021-01-26
      • 1970-01-01
      • 2012-08-26
      • 2021-05-24
      • 2015-08-16
      • 2014-05-17
      • 2010-09-23
      相关资源
      最近更新 更多