簡體   English   中英

如何延遲PHP腳本直到Mysql插入查詢提交

[英]how to delay PHP script until Mysql insert query is committed

在我正在開發的網站中,用戶必須注冊或注冊。

當用戶提交注冊表單時,用戶應該使用他的用戶名自動登錄...

現在,我將數據插入到 Mysql 數據庫中,然后使用 Select 語句從數據庫中檢索相同的數據,但問題是 Select 語句的執行速度比 Insert(或其他東西)快,並導致致命錯誤......我想要 PHP用於檢索數據的腳本等待插入提交......我該怎么做? 謝謝

首先檢查查詢是否已成功執行。

$result = mysql_query('SELECT * WHERE 1=1'); if (!$result) { die('Invalid query: ' . mysql_error()); }

使用 PHP,對 RDBMS(如 MySQL)的請求總是同步執行的。 然后,您描述的行為可能來自在 INSERT SQL 語句之前啟動的未提交事務。 事實上,如果事務沒有完成並且您對之前插入的表執行 SELECT SQL 語句,您將看不到任何新內容,因為 RDBMS 還不知道插入的數據是否必須提交。

您可能要檢查的第一件事是交易是否開始:

如果您沒有在代碼中執行正式事務,啟用自動提交可能是一個解決方案。 否則,請不要忘記在適當的時候發送 COMMIT 語句。

我面臨着類似的問題。

在無法正確修復后,我最終添加了sleep(1); 在我的 INSERT/UPDATE 查詢之后。

服務器似乎沒有正常工作,因為查詢是同步執行的。 我覺得我的問題與 VPS 的內存或文件系統/緩存延遲有關。 數據需要大約 0.100 才能真正更新,當它應該在運行時反映時。

我不確定問題到底出在哪里,只是告訴您“如何延遲 PHP 腳本”。

問候。

暫無
暫無

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

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