0

WHERE 句で 2 つの列を同時に選択する必要があるときに、MYSQL データベースのレコードを削除しようとしています。

 $result3 = mysqli_query($con, " DELETE FROM Waiting WHERE ToUser='$ToEmail' AND ImageID='$ToEmailDB' ");
    if ($result3==false) {
        echo "No images waiting for " . $ToEmail . " for image " . $ToEmailDB;
    }
    else {
        echo "Image and record deleted for " . $ToEmail . " for image " . $ToFileName . ".jpg and record " .                   $GuessImageID;
    }

このステートメントを実行すると$result3 returns true、エントリは削除されません。書式設定で何を変更する必要がありますか? 文字列は、テーブルに入力された正しいデータをエコー バックします。

4

4 に答える 4

1
$result3 = mysqli_query($con, "DELETE FROM Waiting WHERE ToUser='".$ToEmail."' AND ImageID='".$ToEmailDB."' ");
于 2013-10-03T05:46:58.527 に答える
0

DELETE によって DB 内の行が削除されなかった場合でも、SQL クエリが正常に実行された場合、クエリは true を返します。

http://php.net/manual/en/mysqli.affected-rows.php

あなたの質問に答えるには、影響を受けた行の数を見つける必要があります

$result3 = mysqli_query($con, " DELETE FROM Waiting WHERE ToUser='$ToEmail' AND ImageID='$ToEmailDB' ");

if (!$result3) {
    echo "A database error occurred";
}
else if (mysqli_affected_rows($con) == 0) {
    echo "No images waiting for " . $ToEmail . " for image " . $ToEmailDB;
}
else {
    echo "Image and record deleted for " . $ToEmail . " for image " . $ToFileName . ".jpg and record " . $GuessImageID;
}
于 2013-10-03T05:42:41.167 に答える