質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

668閲覧

xampp環境 特定の条件になったらデータベースのデータを自動で更新したい

minatonn

総合スコア14

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2021/10/28 05:29

編集2021/10/28 05:45

現在xampp環境でPHPの学習をしています。
行いたいことはテーブル内のデータが一定の時間更新されなければデータを書き換える処理を作成したいのですが
どのようにすればいいのかわからないためご助言いただけないでしょうか?

これまで行ってきたことの説明

ユーザーの行動状況を以下テーブルを作りデータベースに格納しています。
更新の仕組みとしてはログイン⇒コンテンツ選択⇒ログアウトとページ遷移するたびに行動内容をpost形式でデータを渡しaction_historyテーブルに登録させています。

action_historyテーブル作成

CREATE TABLE `action_history` ( `id` int(255) NOT NULL, `status` int(255) NOT NULL, `current_time` datetime NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

action_statusテーブル作成

CREATE TABLE `action_status` ( `id` int(255) NOT NULL, `status` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; INSERT INTO `action_status` (`id`, `status`) VALUES (0, '通信切断されました'), (1, 'ログインしました'), (2, 'コンテンツ選択しました')

行いたいこと

5分以上action_historyテーブルのデータが更新されなかったらこのクエリーを実行したい。
もしくは同様(action_historyテーブルのstatusカラムの値を0にする)結果を得たい。

UPDATE action_history SET status = 0 where current_time > CURRENT_TIMESTAMP + INTERVAL - 5 MINUTE;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この手の処理はトリガーをどうするかが難しいのですが、cronで1分間隔で監視するスクリプトを作って実行させるような方法が考えられます。ただし、XAMPP環境ではけっこう面倒かもしれません。

参考)
https://qiita.com/laneigef/items/4c4871407023020196c9

私はXAMPPを使わないので、試したことはないです。

1分間隔でも長くて厳しいとなれば、プログラムを常駐させてさらに短い間隔で監視する方法もあるでしょう。めちゃくちゃ簡単に作るならfor文で永久ループするプログラムを別に回すとか。

投稿2021/10/30 17:03

AbeTakashi

総合スコア4539

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minatonn

2021/11/01 08:18

最終的にJenkinsで定期的にスクリプトを実行し、DBを更新させるようにして実現しました。 いただいた参考URLを拝見させていただきました。 タスクランナーでbatファイルを起動させるやり方があるのですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問