標題: [D4.0] [求救]MySQL Query Error 1054[已解決]
 goalkeeper
 0045079
Rank: 1

頭銜: Newbie

帖子: 26

精華: 0

積分: 340 點

現金: 100 元

存款: 0 元

閱讀權限: 10

註冊: 2006-5-15

狀態: 離線
 
發表於 2007-8-25 17:25  資料  個人空間  短消息  加為好友 
[求救]MySQL Query Error 1054[已解決]

Discuz! info: MySQL Query Error

User: xxx
Time: 2007-8-25 5:03pm
Script: /admincp.php

SQL: UPDATE cdb_forums SET status='1', name='xxxx', styleid='0',
allowblog='0', allowtrade='0', allowhtml='0', allowbbcode='1',
allowimgcode='1', allowsmilies='1', alloweditrules='0',
modnewposts='0', recyclebin='0', jammer='0',
disablewatermark='0', autoclose='0'
WHERE fid='80'
Error: Unknown column 'allowblog' in 'field list'
Errno.: 1054

在系统設置更改 forum 名按確定後出了以上 error msg, anyone can help ?

[ 本帖最後由 goalkeeper 於 2007-9-2 22:10 編輯 ]




 AL8 Forum © All rights reserved.
頂部
 friri
 0026436
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

頭銜: Moderator

暱稱: Secret

帖子: 3579

精華: 0

積分: 21297 點

現金: 96 元

存款: 3238 元

閱讀權限: 100

註冊: 2005-7-16

來自: 香港

狀態: 離線
 
發表於 2007-8-26 00:37  資料  個人空間  短消息  加為好友 
後台 或 phpmyadmin 進行這數據升級
ALTER TABLE cdb_forums ADD `allowblog` tinyint(1) NOT NULL default '0'


在進行升級前要問你一個問題
是否曾是D4.0版 升 D4.1版 時失敗?而重安D4.0論壇?
若是,那你的文件可能並不是D4.0…
我不太記得blog 4.0是否沒有,如果是沒有,那你應重新上載D4.0文件

不過以上升級能Fix你的問題,只是用不同論壇版本卻沒有該版本的數據,會經常出現類似上述找不到該數值。

[ 本帖最後由 friri 於 2007-8-26 00:40 編輯 ]




論壇的一切暫時要停止了,但有我認識的問題,都會嘗試幫你解決!
 AL8 Forum © All rights reserved.
頂部
 goalkeeper
 0045079
Rank: 1

頭銜: Newbie

帖子: 26

精華: 0

積分: 340 點

現金: 100 元

存款: 0 元

閱讀權限: 10

註冊: 2006-5-15

狀態: 離線
 
發表於 2007-8-26 01:18  資料  個人空間  短消息  加為好友 
Thanks for your reply. You exactly know what happened. Actually I've tried to upgrade to Discuz 4.1 but fail at around april 2007.  Due to the fact that I was very busy at that time and no time to fix this problem, or simply say, no such knowledge to fix it.  Then, I quit.  After that, I reinstalled 4.0 and everything is ok.  Recently, I found that there are some problems occurred when I tried to change the system setting.  That's why I want to re-install Discuz 4.0 ...
From your reply, does it mean that actually I need to re-install 4.1 instead of 4.0 ?

Besides, as I can't access phpmyadmin right now [actually I don't know much about that, this part was done by the server provider] I can't do what you have suggested. But I'll try to phone them tomorrow and see whether they can help.  

I really appreciate your reply and hope to hearing from you soon. Thanks in advance !




 AL8 Forum © All rights reserved.
頂部
 goalkeeper
 0045079
Rank: 1

頭銜: Newbie

帖子: 26

精華: 0

積分: 340 點

現金: 100 元

存款: 0 元

閱讀權限: 10

註冊: 2006-5-15

狀態: 離線
 
發表於 2007-8-30 22:19  資料  個人空間  短消息  加為好友 
之前由於 newbie 發帖限制未能即時回覆, 對不起!
言歸正傳...

己於後台進行這數據升級

ALTER TABLE cdb_forums ADD `allowblog` tinyint(1) NOT NULL default '0'

果然這問題解決了.   但另一 error msg 出現:

Script: /admincp.php

SQL: UPDATE cdb_forums SET status='1', name='xxx', styleid='0',
allowblog='0', allowtrade='0', allowhtml='0', allowbbcode='1',
allowimgcode='1', allowsmilies='1', alloweditrules='0',
modnewposts='0', recyclebin='0', jammer='0',
disablewatermark='0', autoclose='0'
WHERE fid='80'
Error: Unknown column 'allowtrade' in 'field list'
Errno.: 1054


是否曾是D4.0版 升 D4.1版 時失敗?而重安D4.0論壇?
若是,那你的文件可能並不是D4.0…我都不能確定[但在 .sql file 內說的是 Version: Discuz! 4.0.0]

那依據你上次的做法, 今次是否加下面的 code 便可以?

ALTER TABLE cdb_forums ADD `allowtrade` tinyint(1) NOT NULL default '0'

不過, 若以上方法可行, 那會否影響我之後升級至更高 version 呢? 如 discuz 5.0 or 5.5?

[ 本帖最後由 goalkeeper 於 2007-8-30 22:20 編輯 ]




 AL8 Forum © All rights reserved.
頂部
 friri
 0026436
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

頭銜: Moderator

暱稱: Secret

帖子: 3579

精華: 0

積分: 21297 點

現金: 96 元

存款: 3238 元

閱讀權限: 100

註冊: 2005-7-16

來自: 香港

狀態: 離線
 
發表於 2007-8-31 02:14  資料  個人空間  短消息  加為好友 
回覆 #4 goalkeeper 的帖子

那我就由升級失敗的個案和的說說:

我之前提及的文件是與SQL無關的,SQL上面是數據,所以同論壇文件無關
如無猜錯,你現在論壇的文件仍是D4.1,所以運行論壇時會要某查詢,但
因4.0原來的數據沒有該查詢,而出現錯誤找不到數據的情況!
所以你要重新上載論壇D4.0的文件覆蓋現在的D4.1文件
而文件例子如:index.php、viewthread.php....總之是論壇所有的文件(包括資料夾內)

註:文件 與 數據 無關,所以動到文件,是不會損失帖子數據、會員數據等等!


至於ALTER TABLE cdb_forums ADD `allowtrade` tinyint(1) NOT NULL default '0'
並不是全部都是這樣做的!因為數值是不同!你這樣升了,就表示加了一個數據定義,但設定上的問題,可能這定義並不是儲存數字,如本應儲存文字,這就會造成出錯!而且default指默認:後面的0為程式者本來要求的默應數值,並不是每個數據一樣的!
所以請不要這樣升!

上面所出現的錯誤,其實是升級4.1的安裝會自動增加的,所以你隨片加新數據上去,雖不會損壞數據,但論壇某地方未必運行到,及阻礙了再試升4.1時安裝的完整性!
簡單的解說:若那句數據升級後,執行4.1升級會有重複錯誤的訊息!




論壇的一切暫時要停止了,但有我認識的問題,都會嘗試幫你解決!
 AL8 Forum © All rights reserved.
頂部
 friri
 0026436
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

頭銜: Moderator

暱稱: Secret

帖子: 3579

精華: 0

積分: 21297 點

現金: 96 元

存款: 3238 元

閱讀權限: 100

註冊: 2005-7-16

來自: 香港

狀態: 離線
 
發表於 2007-8-31 02:36  資料  個人空間  短消息  加為好友 
補充上文:

檢驗文件是4.0定是4.1的其中一個簡單方法:查看
discuz_version.php
裡面若寫著
define('DISCUZ_VERSION', '4.1.0');
那就是D4.1文件,請替換!


之後下面就是論壇成功沒有錯誤訊息時最好做的數據升級:(以免阻礙執行4.1升級)
ALTER TABLE cdb_forums DROP `allowblog`

至於下面個句就示附你有沒有升到你寫的那句:即:
ALTER TABLE cdb_forums ADD `allowtrade` tinyint(1) NOT NULL default '0'
之前有升到的,請執行下面升級,否則不用:
ALTER TABLE cdb_forums DROP `allowtrade`

若這兩句升級出錯,不用理會!




論壇的一切暫時要停止了,但有我認識的問題,都會嘗試幫你解決!
 AL8 Forum © All rights reserved.
頂部
 goalkeeper
 0045079
Rank: 1

頭銜: Newbie

帖子: 26

精華: 0

積分: 340 點

現金: 100 元

存款: 0 元

閱讀權限: 10

註冊: 2006-5-15

狀態: 離線
 
發表於 2007-8-31 09:27  資料  個人空間  短消息  加為好友 
discuz_version.php 內容如下:

define('DISCUZ_VERSION', '4.0.0');
define('DISCUZ_RELEASE', '20060102');

那應該是 4.0 版本.

這句升級成功:
ALTER TABLE cdb_forums DROP `allowblog`


而我本身並沒有做以下升級:
ALTER TABLE cdb_forums ADD `allowtrade` tinyint(1) NOT NULL default '0'


只是從你之前的回覆,自己 "懶叻" 估吓係唔係咁樣升級.

而這句升級失敗:
ALTER TABLE cdb_forums DROP `allowtrade`


Discuz! 提示

升級錯誤,MySQL 提示: Can't DROP 'allowtrade'; check that column/key exists


相信是因我之前沒有做 ALTER TABLE cdb_forums ADD `allowtrade` 升級而致 升級錯誤.

那又重新回到起點了... 現在仍然不能 編輯論壇.  執行了以上升級後嘗試 編輯論壇 但出現 error msg

User: xxx
Time: 2007-8-31 8:37am
Script: /admincp.php

SQL: UPDATE cdb_forums SET status='1', name='xxx', styleid='0',
allowblog='0', allowtrade='0', allowhtml='0', allowbbcode='1',
allowimgcode='1', allowsmilies='1', alloweditrules='0',
modnewposts='0', recyclebin='0', jammer='0',
disablewatermark='0', autoclose='0'
WHERE fid='80'
Error: Unknown column 'allowblog' in 'field list'
Errno.: 1054

嘗試執行了以下升級

ALTER TABLE cdb_forums ADD `allowblog` tinyint(1) NOT NULL default '0'


之後出現 error msg:

User: xxx
Time: 2007-8-31 8:45am

Script: /admincp.php

SQL: UPDATE cdb_forums SET status='1', name='xxx', styleid='0',
allowblog='0', allowtrade='0', allowhtml='0', allowbbcode='1',
allowimgcode='1', allowsmilies='1', alloweditrules='0',
modnewposts='0', recyclebin='0', jammer='0',
disablewatermark='0', autoclose='0'
WHERE fid='80'
Error: Unknown column 'allowtrade' in 'field list'
Errno.: 1054

那我應怎麼辨呢?

其實為何我會分開兩個帖去詢問是有目的和原因的.
原因:
1. 現在這一帖的問題 [errno 1054] 是現在正在運行中的論壇發生. 因版主要求需 編輯論壇 但不成功.  由於之前升級失敗 [4.0.0 -> 4.1.0], 後果是變了亂碼, 不能回頭. 那次幸運地還救到啲 Data, 以致我不敢作出大動作.
2. 我已開了多一個 temp 數據庫作測試用途, 從現在運行中的論壇 備份數據, 再在新 folder 重裝 Discuz 4.0.0, 然後數據恢復, 但不幸地, 亂碼再現.

這樣做的目的:
1. 並不影響現行論壇運作, 滿足版主要求 [因為是大家夾錢租 server]
2. 為免重慆復切, 確定用 temp 數據庫進行升級無誤 [從 4.0.0 -> 4.1.0 -> 5.0.0 -> 5.5.0], 然後才關閉運行中的論壇進行升級. 但現在只能做到重装 4.0.0 無誤, 一數據恢復便出事.

其實這問題已困擾我四個月之久, 現在才有時間及"的起心肝" 去根冶這問題, 其實我已用搜索的方法在 alan888.com 觀看了好多好多的帖但還是未能找到答案...

煩請 friri 版主 指點迷津...

[ 本帖最後由 goalkeeper 於 2007-8-31 09:34 編輯 ]




 AL8 Forum © All rights reserved.
頂部
 friri
 0026436
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

頭銜: Moderator

暱稱: Secret

帖子: 3579

精華: 0

積分: 21297 點

現金: 96 元

存款: 3238 元

閱讀權限: 100

註冊: 2005-7-16

來自: 香港

狀態: 離線
 
發表於 2007-8-31 12:01  資料  個人空間  短消息  加為好友 
回覆 #7 goalkeeper 的帖子

那我仔細再幫你查一查,自從自己升了D5,D4的升級錯誤要重新看過
--------------------------------------------------------------------------------------------------
查過後:
先說對不起,說錯了一部分
翻查4.0版本後,確實有查詢allowblog,allowtrade
但你的備分數據卻漏了這兩個,而做成錯誤
那現在請執行下面升級,根治這個後台論壇編輯問題:
ALTER TABLE cdb_forums ADD `allowblog` tinyint(1) NOT NULL default '0';
ALTER TABLE cdb_forums ADD `allowtrade` tinyint(1) NOT NULL default '0';

查過數據後發現allowtrade的寫法與allowblog的是一樣。




論壇的一切暫時要停止了,但有我認識的問題,都會嘗試幫你解決!
 AL8 Forum © All rights reserved.
頂部
 goalkeeper
 0045079
Rank: 1

頭銜: Newbie

帖子: 26

精華: 0

積分: 340 點

現金: 100 元

存款: 0 元

閱讀權限: 10

註冊: 2006-5-15

狀態: 離線
 
發表於 2007-8-31 12:39  資料  個人空間  短消息  加為好友 
已用了你所提供的 code
ALTER TABLE cdb_forums ADD `allowblog` tinyint(1) NOT NULL default '0';
ALTER TABLE cdb_forums ADD `allowtrade` tinyint(1) NOT NULL default '0';


並於後台升級成功並能編輯論壇了. 多謝 frifri 版主相助.




 AL8 Forum © All rights reserved.
頂部


網頁空間由 I-SERVICES 提供
當前時區 GMT+8, 現在時間是 2008-12-5 21:06