如標題:關於PHP+MYSQL 批次更新多筆資料產生的問題
小弟本身設計一資料庫系統,也於國外的hosting24註冊付費空間使用。
大致上的使用上都是正常沒有問題的,但以下困擾一直無法解決,希望有經驗的前輩能夠指教。
問題:
使用FOREACH做迴圈UPDATE MYSQL,當批次更新資料筆數少於500(大約是這數目)筆時,是完全沒有問題可以批次更新的。
但是一旦批次更新數目大於500筆(大約是這數目或是更多),則更新失敗,所謂更新失敗指的是似乎是完全沒有執行到更新指令,原資料原封不動,請問是那邊需要設定?該如何設定?
補充說明:有在個人電腦上架設的APPSERV環境做過測試,無論更新多少筆(大於500筆或是上千筆)都是可以正常批次更新沒有問題的,更新速度也是相當之快,我想批次更新的程式碼部分應該是沒問題的,此方面可以排除。唯有上傳到網路空間上,才會產生無法批次更新大於一定數量。
請問前輩,該朝哪個方向去做故障排除?如果是伺服器設定的問題,可否點出是哪一個設定值需要做更改,好讓我更網路空間商提出要求,抑或者說可以從程式指令碼下手?添加指令碼達成目的?
請多多指教,謝謝
荒野遊龍 wrote:
謝謝大大指教,礙於已...(恕刪)
Another horror story about 000webhost.com and hosting24.com。基本上,只要loading大一點,馬上就出問題。這是無解。
php hosting service,我沒用過,所以不敢推薦。
但我個人還滿喜歡nearlyfreespeech,service非常好,不過他的charge是用多少算多少。
如果是vps,linode, rackspace都不錯。我目前喜歡用amazon aws。不過這都需要自己管理server,比較麻煩。
yhls810187 wrote:
1.拆成小於500筆...(恕刪)
方法1有嘗試做少量的逐次更新,但似乎還是無法解決。似乎是程式的執行時間不夠?或者具體說起來是伺服器端程式並沒有跑完就終止了。
但不解的是,程式也不是跑一半就終止,而是筆數少時,全部都可以跑過,但若筆數過多就乾脆全部都不跑?(因為原資料上是沒有任何異動的,也不會因為如此而導致資料錯誤)
有大大知道是哪一個伺服器參數來用來判斷程式的多寡(或者說是快取?),而執不執行的嗎?
知道參數是哪個,我可以試圖與服務商聯絡是否能作調整。
方法2.程式優化具體指的是什麼?是加入程式碼,可以做出類似調整伺服器端設定的動作嗎?是否可舉例?小弟不太明白還請大大指教。
若真不能解決,等這會期結束真的要考慮換了,
再次謝謝大大指教。
edwintsai wrote:
請用phpinfo檢...(恕刪)
謝謝大大的指教,小弟已發現問題原因:
確實是伺服器的"post_max_size"設定太小所導致,原設定只有8M,難怪整批交件出去的資料超過就無法執行。
經過與HOSTING24的管理員多次溝通,根據他們的說法,因"效能問題"所以不提供修改"post_max_size",最大就是"8M"。
天啊,難怪上面有大大說超爛,現在真的感覺到了,只有"8M"隨便的批次更新交件都很容易超過。HOSING24真是太令人失望。
為了這問題,立馬申請了另一個美國主機HOSTMONSTER,網路上的風評很好,價錢也差不多,很合理。最重要的是它提供了"php.ini"的自訂,現在發現這功能真的十分重要,立刻修改"post_max_size"到150M,小弟的問題迎刃而解了。
再次感謝以上大大撥空指導,也在這邊提醒若有要租用美國主機的,千萬別選hosting24,伺服器的限制會任你欲哭無淚阿!
內文搜尋
X




























































































