あなたは(そのするmysql_queryを注意してください)DELETE
文が実行された場合true
を返します。正しく。 「正しく実行されました」は「実際に行が削除された」と同じではありません。したがって、あなたのクエリが間違っていない限り(悪い構文、テーブル/カラムmysqlは知らない)、これは常にtrue
を返します。
データが変更されたかどうかを知りたい場合は、mysql_affected_rows()を使用してください。
mysqlに渡すデータには、mysql_real_escape_string()を使用する必要があります。
<?php
$success =
mysql_query('DELETE FROM ex_test_taken WHERE userid1 = "' . mysql_real_escape_string($userid2) . '" AND testid1 = "' . mysql_real_escape_string($tid2) . '"')
&& mysql_affected_rows()
&& mysql_query('DELETE FROM ex_answer WHERE name = "' . mysql_real_escape_string($userid2) . '" AND testname = "' . mysql_real_escape_string($tid2) . '"')
&& mysql_affected_rows();
if ($success) {
// DELETEd data in both queries
} else {
// did not DELETE any data in either query
}
また、あなたの古くなったmysql_の*のものを置き換えるためにPDOに見たいと思うかもしれません。
わかりませんが、どうしましたか? – Wilest
彼は、サンプルコードのAND演算子&&の後に、2番目のクエリのためにmysql_queryへの関数呼び出しを追加する必要があることを意味します。 –