簡體   English   中英

PHP PDO將行查詢插入MySQL

[英]PHP PDO Insert row query to MySQL

我有一個插入查詢,可以正常工作,但是有些東西我聽不懂!

我的查詢:

$query = $db -> prepare ("INSERT INTO table (data_1, data_2, data_3) 
VALUES (:data_1, :data_2, :data_3)");

if ($query -> execute (array (":date_1" => $date_1, ":data_2" => $data_2, ":data_3" => $data_3)) == true AND ($query -> rowCount () > 0))
{
    echo "Success";
}
else
{
    echo "Failed";
}

每次將返回“成功”,但每隔幾分鍾將一行插入數據庫! (即使我嘗試刷新頁面1000次,我也會獲得“成功”,但數據庫中沒有新行)

我找不到問題出在哪里,在互聯網上搜索時也找不到任何答案!

還有其他方法可以檢查行是否已正確插入數據庫嗎?

更新:

我剛剛發現,當我使用不同的URL(例如( example.com/?data_1=data1 )和之后( example.com/?data_1=data2 ))時,它可以很好地工作並將行插入數據庫!

但是,當我再次嘗試使用相同的URL時,大約2或3分鍾將不會插入該行!

更新2:

在腳本上工作了10多個小時后,我只是認為可能是因為我在服務器上使用了Varnish Cache Server!

Varnish是否有可能由於緩存頁面而導致此問題,並且PHP腳本由於由Varnish提供服務而無法運行?

*下周當我在家時,我必須檢查它,因為我無法從其他網絡訪問該服務器!

所以我只想知道禁用Varnish是否有可能解決此問題? 因為我對Varnish沒有太多經驗!

更新3:

我剛剛禁用了Varnish,並且使用Varnish可以正常工作,是否有任何方法可以配置Varnish以使其更好地與動態頁面配合使用?

*我認為,但是我不確定Varnish是否可以在動態頁面上正常工作,它也會帶來一些安全問題! 我沒有進行任何檢查,我也不是使用Varnish的專家,但是根據對PHP的理解,我認為將Varnish用於動態頁面不是一個好主意!

如果您使用Varnish,則可以,它將緩存URL。 因此,如果您使用example.com/?data_1=data2,則它將首次運行,因為未緩存URL。 Varnish第二次返回該頁面的內容,並且不會調用您的服務器,因此PHP不會“運行”。 您可以打開Varnish(僅在您的網站沒有很多訪問者的情況下才建議這樣做),也可以使用POST並讓POST作為vcl的通行證,或者在GET中標識一些您一直希望運行的功能(然后對您的vcl中可識別的內容進行傳遞。

暫無
暫無

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

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