0

さて、完了したい基本的なタスクがあり、このサイトがライブにならなくても実行できますが、サイトが安全であることを望み、現在の方法を改善する必要があります

私が望むのは、ユーザーが持っているクレジットの数を変更することです。別の言葉を使用すると、送信ボタンをクリックするとphpスクリプトが実行され、その下のデータを単純に引き出してクレジットを計算し、その数(int)を取得して1を減算します

しかし、私はこれを使用しています

$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();

明らかに、これはあなたが私にくれたものとまったく同じではありませんが、自分で機能させるために2つの変数を追加しました笑笑常に試し続けます

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