0

古いphp sqlスクリプトをPDOに変換しようとしましたが、+15を追加する代わりにユーザーポイントを0に設定し続けます

オリジナルはこちら

<?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 に答える