php - Mysql +1 到变量

标签 php mysql

我应该如何更新我的尝试使用变量?它不会工作

我的代码

$db_attempts = 'MAX_ATTEMPTS';

//here
$attemtps_pdo = 'UPDATE `attempts` SET `MAX_ATTEMPTS`= ? +1 WHERE `IP` = ?';
$results = $ALIST->update($attemtps_pdo,$db_attempts,$user_ip);

public function update($sql,$values1,$values2){
        try{
        $results = $this->connection->prepare($sql);
        $results->bindValue(1, $values1);
        $results->bindValue(2, $values2);
        $results->execute();

        return $results;
}

我如何使我的MAX_ATTEMPTS+1到变量,如果我用我的代码这样做,更新只更新一次,一次是== 1它不会再更新为什么?

但是如果我使用

$attemtps_pdo = 'UPDATE `attempts` SET `MAX_ATTEMPTS`= `MAX_ATTEMPTS` +1 WHERE `IP` = ?';

它工作完美。

最佳答案

因为当您将变量 $db_attempts 绑定(bind)到 SQL 查询中时,您没有引用 MAX_ATTEMPTS 列。绑定(bind)可以防止这样的事情,因为它可能会导致 SQL 注入(inject)。

换句话说,您的第二个示例是执行此操作的正确方法。如果您希望这是动态的(例如,如果 $db_attempts 可以更改),那么您必须使用字符串连接来构建查询。

关于php - Mysql +1 到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345144/

相关文章:

javascript - 将一个值指向另一个页面 jquery?

php - mysql 在序列化数组中选择查询

mySQL更新但也不更新

php - MySQL数据库设计

mysql - BEGIN INSERT INTO SQL 过程错误

php - MySql -- 如何记录使用过的条目?

php - 我以前从未遇到过的 PHP 符号

php - 将数据库数据传递到多个 View -Laravel

PHP 打印数组,每行一个键,这样看起来更容易?

mysql - 触发器语句中的语法错误