※ ChatGPTを利用し、要約された質問です(原文:現在の日時より過去のデータを検索して更新)
現在の日時より過去のデータを検索して更新
このQ&Aのポイント
現在の日時を取得して、過去のデータを更新するためのスクリプトを実装したいです。
過去のデータを取得するためのSQL文を作成し、そのデータを更新する方法を知りたいです。
使用しているデータベースはMySQLで、「p_end_time」というカラムのデータを変更する必要があります。
お世話になります。
現在の日時を取得して、「 現在の日時より過去(以前)のデータが有る場合は、
該当のカラムデータを変更 」というスクリプトを実装しようと思っています。
例えば、「 現在の日時より過去(以前)のデータをSELECTする 」には、
---------------------------------------------------------------------
//現在の日時を取得
$time_now = date("Y/m/d H:i:s",strtotime("now"));
// 「 $time_now 」より過去のデータを「 p_end_time 」カラムから取得
$sql = "SELECT id, user_id, p_end_time FROM テーブル名 WHERE p_end_time <= '$time_now'";
$stmt = $conn->prepare($sql);
$stmt->execute();
foreach ($stmt as $row) {
//取り出した「 user_id 」を「 $user_id 」に置き換える。
$user_id = $row["user_id"];
echo $user_id."<br>";
}
---------------------------------------------------------------------
とすれば、該当のデータが出力されますが、同じ条件でUPDATEするには
どの様な構文にすれば良いでしょうか?
「 user_id 」及び「 p_end_time 」の型は、何れもvarcharです。
「 p_end_time 」カラムをvarcharとした拘りは特にありません。
date等に変更することも可能です。
何卒、ご教示の程よろしくお願い申し上げます。
----------------
▼スペック
PHP 5.3.3
MySQL 5.0.95
----------------
お礼
ご回答をいただきありがとうごいます。 selectと同じようにWHERE句で指定すれば良いだけだったんですね・・・。 PDO慣れていないため、クエリを書いた後に 「 $stmt->execute(); する際に配列にすると・・・その後どうするんだ?? 」 と難しく考えすぎていたようです。 本当に助かりました。ありがとうございました。