問題
當您在討論版中執行一些動作時,您可能會遇到下面這個錯誤訊息
以上問題可能發生在一個或者數個資料庫的欄位中,所以訊息中提到的欄位名稱也可能會改變,但問題的本質應該是一樣的Field 'forum_last_post_subject' doesn't have a default value [1364]
原因
這通常是因為資料庫版本的升級所造成的。例如從 MySQL 3.0.x 或 4.0.x 升級到 4.1.x 或 5.x,而虛擬主機供應商也可能會在不通知用戶的情況下做升級的動作
問題的發生是因為舊版本的資料庫結構如果沒有經過特殊的微調,在新版本中會無法正常運作。因此,在沒有適當的修正資料庫結構的情況下,就會發生上述的問題
這個問題最近在 phpbb.com 的支援版面時常出現,另外,使用者也經常誤以為這是 phpBB 的小蟲(bug)而回報給 phpBB.com。因此,phpBB 的開發小組認為他們應該對此問題做出說明,並且提供一個執行程式,讓有此問題的使用者可以修復資料庫上的版本相容性問題
修正方法
- 在執行程式前,請先備份討論版所使用的資料庫
- 請先確定您所使用的 phpBB3 版本是最新的,下載 mysql_upgrader.php (適用於 3.0.0 上)
- 在您的桌面上把壓縮檔解壓縮
- 閱讀裡面的文件,並且依照上面的敘述做出必要的動作
- 使用 FTP 客戶端程式把 mysql_upgrader.php 上傳到您的討論版的根目錄下。您可以在這個位置找到 config.php 這個檔案
- 在瀏覽器中鍵入與 mysql_upgrader.php 相對應的網址,如果以 phpBB.com 為例子,那網址應該是
代碼: 選擇全部
http://www.phpbb.com/community/mysql_upgrader.php
- 這個程式會掃瞄您的資料庫,然後產生符合您的資料庫版的的架構,結果是它會產生一些 SQL 命令列讓您可以使用以下方式來執行
- 透過 phpmyadmin 來執行
- 透過 MySQL 的命令列工具(console)
- 提供給主機供應商,請對方幫您執行
- 當提供的 SQL 命令列順利執行後,之前遭遇的問題應該就不會再發生了。而討論版也應該要能正常運作
- 最後,使用 FTP 客戶端程式把 mysql_upgrader.php 從討論版的根目錄移除