我写了这段代码来给出+1分,但它不能正常工作。
mysql_query("
UPDATE member_profile
SET points= ' ".$points." ' + 1
WHERE user_id = '".$userid."'
");$points变量现在是用户的点数。我想让它再加一个。例如,如果他有5个点,它应该是5+1 = 6,但它不是,它只是变成了1。
我做错了什么?
发布于 2017-06-12 18:22:57
您应该使用PDO来防止SQL注入风险。
您可以像这样连接到DB:
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递增该值也不是一个好主意,因为您需要首先选择数据,如果其他用户更新了该值,则该值可能会更改。)
$req = $bdd->prepare('UPDATE member_profile SET
points = points + 1
WHERE user_id = :user_id');
$req->execute(array(
'user_id' => $userid
));https://stackoverflow.com/questions/2259155
复制相似问题