0

好的,我有一项基本任务要完成,如果该站点无法上线,我可以完成,但因为它是我希望它是安全的,并且我当前的方法需要更好

我想要的是改变一个用户有多少信用,所以我有另一个词

但我正在使用这个

$query = mysql_query("SELECT * FROM UsersList WHERE Credits='$CurrentCredits'");

然后我会简单地

  $db = new PDO('mysql:dbname=;host=', aooza, 'Password');

     $insert = 'INSERT INTO `LIST` (`Credits`) VALUES (:NewCreditCount)';

    $statement = $db->prepare($insert);
    $statement->bindParam(':Credit', $_SESSION['Credit'], PDO::PARAM_STR);
    $statement->execute();

但是,这当然行不通,因为我的主要问题是它只是在新行上输入新的信用计数,所以没有用户,而且我不知道更好的说法

我如何让它在哪里它改变它为那一行而不是只是在国外

更新代码

$Credits = $_SESSION['Credits'];

 $update= 'UPDATE `PingPalooza` SET `Credits` = `Credits` - 1 WHERE `Email` = :Email LIMIT 1';

 $_SESSION['Credits']=$Credits;

 $statement = $db->prepare($update);
 $statement->bindParam(':Credits', $_SESSION['Credits'], PDO::PARAM_STR);
 $statement->bindParam(':Email', $_SESSION['Email']);
 $statement->execute();

显然这不是你给我的,但我添加了两个可变的东西只是为了尝试让它自己工作 lol lol 总是继续尝试

4

1 回答 1

1

使用UPDATE查询修改现有行:

$update= 'UPDATE `LIST` SET `Credits` = `Credits` - 1 WHERE `UserId` = :UserId LIMIT 1';

$statement = $db->prepare($update);

// you don'e need this line below if you are doing the subtraction in the query (like above)
//$statement->bindParam(':Credit', $_SESSION['Credit'], PDO::PARAM_STR);
$statement->bindParam(':UserId', $_SESSION['UserId']);
$statement->execute();

假设您的目标 UserId 在$_SESSION['UserId']并且您在表中的字段是UserId.

于 2012-11-30T09:27:47.363 回答