0

だから、WHEREを使用して値が満たされたときに何かのステータスを変更しようとしています

コード:

$insertstatus = $DBH->prepare("INSERT INTO
   csvdata (status)  VALUES ('$status') WHERE username = '".$username."'");
        $insertstatus->execute();

動作していません。手を貸していただければ。

お時間をいただきありがとうございます!

4

1 に答える 1

4

このwhere句を使用する場合は、update を使用する必要があります。見た目から、テーブルの列を1つしか使用していないため、とにかく更新しようとしています。

$insertstatus = $DBH->prepare("update
   csvdata set status=  '$status' WHERE username = '".$username."'");
    $insertstatus->execute();

ただし、PeeHaa が正しく指摘しているように、パラメーターを使用して準備されたステートメントを使用すると、コードがわずかに変更され、より適切なオプションになります。次のように実行できます。

$sql="update csvdata set status=:status where username=:username";
$sth=$DBH->prepare($sql);
$sth->execute(array(':status' => $status, ':username' => $username));

このようにしてステートメントを準備しているので、データベースは何が起こるかを知っています。execute()次に、配列内の関数を介して変数をデータベースに渡します。

于 2012-08-21T22:21:40.980 に答える