簡體   English   中英

如何在 php 中每分鍾自動將新記錄發送到 mysql 行

[英]How to automatically send new record to mysql row every minute in php

我目前正在編寫自己的社交網絡 (temal.cf)。 用戶可以注冊、登錄和與其他用戶聊天。 如果用戶 1 登錄,則 phpmyadmin 數據庫中的“last_login”行將更新為當前時間,“status”行將更改為“online”。 如果用戶 1 注銷,它會將“狀態”行設置為“離線”。 因此,如果用戶只是關閉瀏覽器或關閉選項卡,他將保持在線狀態。 那是個問題。 我現在解決這個問題的想法是每 1 或 2 分鍾更新一次數據庫中的“last_login”行。 如果用戶 1 關閉他的瀏覽器,它將不再向數據庫發送更新。 如果另一個用戶檢查用戶1的在線狀態,它會檢查當前時間和用戶1上次登錄時間之間的時間差是否超過2-3分鍾,如果是,應該說用戶1 離線,如果沒有,應該說用戶 1 在線。

那么如何以 php 語言每分鍾自動向 sql phpmyadmin 數據庫發送一條新記錄?

(我知道我的英語很糟糕,對不起:/)

僅使用 PHP 這是不可行的,您必須使用某種前端解決方案和后端解決方案

幾個解決方案是:

  1. Socket.io
  2. 發送 AJAX,每分鍾使用 setInterval...(糟糕的想法,但在某些情況下會起作用),然后檢查 CRON 腳本時間差異...
  3. 每次您進行任何 backednd 活動時,只需更新您的數據庫時間,這對於性能也是一個糟糕的想法......,如果您有像 MyISAM 或任何其他數據庫引擎,他們有特定的數據庫工作規則,例如 MyISAM 將在更新時鎖定整個表單行......所以所有其他請求都必須等待
  4. 沒完沒了的 AJAX (錯誤的想法),當你得到狀態碼 499 時,你就知道發生了什么……但如果你這樣做,那就有問題了……
  5. ……

有很多解決方案,但其中大多數都很糟糕,您的 BOSS 不會高興:D,最好是 Socet.io 適合您的情況,或者只需執行 2 次並每 10 分鍾發送一次,如果您的應用程序有一些,它的 OKEY在線狀態延遲...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM