首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL更新查询中的增量值

MySQL更新查询中的增量值
EN

Stack Overflow用户
提问于 2010-02-14 05:37:20
回答 10查看 301.3K关注 0票数 159

我写了这段代码来给出+1分,但它不能正常工作。

代码语言:javascript
运行
复制
mysql_query("
    UPDATE member_profile 
    SET points= ' ".$points." ' + 1 
    WHERE user_id = '".$userid."'
");

$points变量现在是用户的点数。我想让它再加一个。例如,如果他有5个点,它应该是5+1 = 6,但它不是,它只是变成了1。

我做错了什么?

EN

Stack Overflow用户

发布于 2017-06-12 18:22:57

您应该使用PDO来防止SQL注入风险。

您可以像这样连接到DB:

代码语言:javascript
运行
复制
try {
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=xxxx;dbname=xxxx', 'user', 'password', $pdo_options);
    $bdd->query('SET NAMES "utf8"');
} catch (PDOException $e) {
    exit('Error');
}

不需要查询DB来获得点数。可以在update查询(points = points + 1)中直接递增。

(注意:此外,使用PHP递增该值也不是一个好主意,因为您需要首先选择数据,如果其他用户更新了该值,则该值可能会更改。)

代码语言:javascript
运行
复制
$req = $bdd->prepare('UPDATE member_profile SET 
            points = points + 1
            WHERE user_id = :user_id');

$req->execute(array(
    'user_id' => $userid
));
票数 2
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2259155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档