0

我尝试将旧的 php sql 脚本转换为 PDO,但它一直将用户点设置为 0 而不是添加 +15

这里是原文

<?php

session_start();
$db = mysqli_connect("host", "username", "password", "dbname"); 
$username = $_SESSION['username'];
mysqli_query($db, "UPDATE login_users SET Points=Points+15 WHERE username='$username'");


?>

这是我尝试创建的 PDO 语句。我的语法错了吗?

<?php

session_start();
$db = new PDO('mysql:host;dbname=dbname;charset=UTF-8', 'username', 'password');
$username = $_SESSION['username'];
$Points = $db->exec("UPDATE login_users SET Points='Points+15' WHERE username='$username'");


?>
4

2 回答 2

4

'Points+15' 是文字。你需要它没有单引号。

UPDATE login_users SET Points=Points+15 WHERE username='$username'

更好的是,利用参数化:

$Points = $db->prepare("UPDATE login_users SET Points=Points+15 WHERE username=?");
$Points->execute(array($username))
于 2012-10-28T20:22:51.277 回答
2

摆脱这些报价

SET Points='Points+15' WHERE 
于 2012-10-28T20:23:11.587 回答