2011-04-06 86 views
3

我們有一個大部分都是靜態的頁面,包含幾個PHP包,每個PHP包都從我們的MSSQL數據庫中提取數據。PHP頁面中途停止加載,使用ODBC,數據源,MSSQL

有一個很奇怪的問題,頁面會隨機停止渲染。問題是零星的,並不總是可見的。有時頁面加載正確,有時會在到達文件結尾之前停止。

有問題的頁面,在這裏你可以看到的問題是在 開發:http://author.www.purdue.edu/discoverypark/climate/ PROD:http://www.purdue.edu/discoverypark/climate/index.php

如果刷新頁面上重複,你會希望能夠看到這個問題。問題只存在於包含對我們數據庫的調用的頁面上,但大部分時間頁面都會正常加載;只有時候它會停止輸出頁面。它已經破壞了正常的html以及php塊之前和之內。

這個問題在生產環境中似乎更糟糕;兩者之間的唯一區別就是與數據庫的數據源連接。

在PHP,ODBC和MSSQL中是否有任何已知的問題?它顯然與對數據庫的調用有關,這些都是存儲過程。這可能是數據源的問題嗎?

任何輸入,將不勝感激。

+0

你看到在錯誤日誌中的任何錯誤?這聽起來像是必須有一個代碼或連接問題,導致頁面處理無效。 – whoughton 2011-04-06 14:22:30

+1

php.ini中的'error_reporting'設置是你的朋友!將其設置爲記錄所有錯誤,打開日誌記錄(確保不顯示生產中的錯誤)並檢查日誌...如果這是一個PHP問題,您將看到它出現在日誌中,如果不知道您將會看到去別處看看。 – wimvds 2011-04-06 14:29:05

+0

我檢查了我們的服務器管理員並啓用了錯誤日誌記錄功能,但是我沒有看到與此問題相關的任何錯誤。 – Will 2011-04-08 18:34:19

回答

0

確保沒有在代碼中的模具或出口任何地方

編輯 - 如果有,刪除此,並查看錯誤

0

你檢查正常的調試方法?代碼的外觀是什麼 - 特別是,圍繞ODBC調用的錯誤處理?你沒有最高水平的回報或錯誤的死亡(),是嗎?

當我看到頁面處於非呈現狀態時,它似乎是因爲頁面顯然不完整,它是XHTML。

我看到它通常死在這裏 -

<a href="/research/vpr/">OVPR</a> 
1

我不斷地看到這一點 「查看源文件」,當它死:

< DIV CLASS = 「包裝」 > < A HREF =「/研究/ VPR/「>過壓保護解除</A > < IMG ALT =」 > 「SRC =」。

我猜想你的圖片緩存或圖片URL生成或圖片處理可能在某個地方被破壞,並且因爲缺少圖片而中止。

The > INSIDE alt值也不是猶太教。這需要逃脫http://php.net/htmlentities

它可能「工作」,但它不會驗證,並且一個不驗證的頁面只是簡單的破碎。

DEV中的本地主機和PROD中的單獨盒子之間的數據庫連接差異可能會改變問題的時間/頻率,但幾乎肯定會出現紅鯡魚......

但如果一個DB調用來查找過壓保護解除圖像做一個模具()...

可以肯定的,不過,如果你沒有10行錯誤的每個呼叫處理各地odbc_ *或mssq_ *在你的數據庫代碼中,那麼你做錯了,需要添加。

PS 從ODBC切換到mssql_ *或sybase_ *驅動程序或PDO :: *並且至少消除一個可能的競爭者(如果以上都沒有解決)應該是微不足道的。不過,我再說一次,數據庫肯定是99%的紅色鯡魚,而且你做了一件很明顯的事情,敢說我很傻,一旦你找到真正的原因...