1 頁 (共 1 頁)

(...doesn't have a default value) 沒有預設值的錯誤訊息

發表於 : 2007-12-23 10:42
Mac
原 URL:http://www.phpbb.com/kb/article/doesnt- ... ue-errors/

問題
當您在討論版中執行一些動作時,您可能會遇到下面這個錯誤訊息
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 從討論版的根目錄移除
~Mac

發表於 : 2007-12-23 10:48
Mac
上面提到的「閱讀裡面的文件,並且依照上面的敘述做出必要的動作」其實是 mysql_upgrader.php 裡面的這一段

代碼: 選擇全部

//
// Security message:
//
// This script is potentially dangerous.
// Remove or comment the next line (die(".... ) to enable this script.
// Do NOT FORGET to either remove this script or disable it after you have used it.
//
die("Please read the first lines of this script for instructions on how to enable it");

代碼: 選擇全部

//
// 安全性訊息:
//
// 這個程式使用不當可能會造成安全上的疑慮
// 請移除下一行 (die(".... ) (或是使用 // 把該行標記為註釋)來啟用這個程式.
// 請務必在使用後移除這個程式
//
die("Please read the first lines of this script for instructions on how to enable it");
~Mac

Re: (...doesn't have a default value) 沒有預設值的錯誤訊息

發表於 : 2008-12-24 21:26
心靈捕手
Mac 寫:原 URL:http://www.phpbb.com/kb/article/doesnt- ... ue-errors/
...
修正方法
  • 在執行程式前,請先備份討論版所使用的資料庫
  • 請先確定您所使用的 phpBB3 版本是最新的,下載 mysql_upgrader.php (適用於 3.0.0 上)
    ...
~Mac
建議大家:
到上頭 "原 URL" 去下載符合您目前 phpBB 版本的 "mysql_upgrader.php" 來修正您的資料表.