私はすべてのページの先頭に次のように記述しています。だから、誰でもPHPをロードすると、PHPは特定のデータベーステーブルのレコードを3日以上削除します。PHP MySQLのレコードを3日以上前に削除する
$conn = getConnected("oversizeBoard");
mysqli_query($conn, "DELETE FROM postedLoads WHERE date < DATE_SUB(DATE('m-d-Y'), INTERVAL 3 DAY");
問題は何も削除されていません。
私の日付のデータ型はvarchar(20)
です。MySQLに日付を挿入すると、date("m-d-Y")
を使って入力します。私の日付フィールドの名前はdate
です。上記のクエリは正しいと思われますが、私は何か間違ったことをしています。私が見たすべての例は、date()
の代わりにnow()
を使用した以外は基本的に同じですが、特定の日付形式を使用しているため、私のクエリにnow()
を使用することはできません。
どうしたのですか?
私も機能にそれを入れてみました:
function deleteOversizeRows() {
$conn = getConnected("oversizeBoard");
mysqli_query($conn, "DELETE FROM postedLoads WHERE date < DATE_SUB(DATE('m-d-Y'), INTERVAL 3 DAY");
}
deleteOversizeRows();
なぜ、あなたの列が 'varchar'のですか? 'date'か' datetime'でなければなりませんか? –
ユーザは今日から今日までの日数を生成するドロップダウンから日付を選択するためです。 'option value =" 01-12-2012 ">' –
のようになります。そして、 'date'や' datetime'は特定のフォーマットが必要ですが、私はテーブルから日付を引きますその形式でユーザーに表示します。 –