1 頁 (共 1 頁)

[問題]在會員增加到130位之後突然無法註冊?

發表於 : 2003-05-27 02:28
yesonline
●架設主機作業系統:RedHat7.3(9.0也一樣)

●上網方式:Hinet ADSL512/512
●安裝的程式:Apache1.3.27 + php4.1.2 + MySql3.23.56
●phpBB2 版本:phpBB2.0.4
●錯誤代碼:

代碼: 選擇全部

一般錯誤 
  
Could not insert data into groups table 

DEBUG MODE 

SQL Error : 1062 Duplicate entry '0' for key 1 

INSERT INTO phpbb_groups (group_name, group_description, group_single_user, group_moderator) VALUES ('', 'Personal User', 1, 0) 

Line : 535 
File : /home/domainclubtw/includes/usercp_register.php


●錯誤狀態:
圖檔


各位好,我的論壇(http://www.domain.club.tw)原本使用2.0.1加上top5的mod,一直有新會員註冊並發表文章。最近我安裝了2.0.4並且加了top5, 快速回覆和「主題類型」的mod,並把資料庫移植過來,一切也OK。
但這兩天突然發生一個狀況,就是有新會員表示註冊完結時發生資料庫錯的訊息,我自己測了一下,發現在填完會員資料按下「送出」之後,果然出現了如下的錯誤訊息:

代碼: 選擇全部

一般錯誤 
  
Could not insert data into groups table 

DEBUG MODE 

SQL Error : 1062 Duplicate entry '0' for key 1 

INSERT INTO phpbb_groups (group_name, group_description, group_single_user, group_moderator) VALUES ('', 'Personal User', 1, 0) 

Line : 535 
File : /home/domainclubtw/includes/usercp_register.php 
後來我把前一天備份的資料庫重新install回去,再試圖新註冊,則一切沒問題,但因此犧牲掉最近一天會員發的新文章。本以為沒事了,但在經過幾小時又有新文章陸續貼出來以後,我再測試一次,發現竟然又出現上述同樣的狀況 :-?

然後我以站長身份進入控制台,試圖刪掉剛才註冊不成的ID,結果也出現錯誤訊息如下:

代碼: 選擇全部

一般錯誤 
Could not delete group for this user

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near '' at line 2

DELETE FROM phpbb_groups WHERE group_id = 

Line : 155
File : /home/domainclubtw/admin/admin_users.php 
不過該ID事實上仍是被我順利刪除。
而且根據「實驗」結果,這個狀況只發生在第131位以後註冊的會員,在會員數130以前的註冊不會有問題。我刪掉幾個會員讓現有人數降到130以下,此時新註冊都不會有問題。但一旦會員人數滿130人,從第131個起新註冊就遇到上述狀況。

請問各位先進,這是什麼樣的狀況?目前無法新註冊會員,確認信似乎因註冊未完成而不被寄發,只有靠我進入控制用手動來批准。

Thank you very much.

發表於 : 2003-05-27 03:01
小竹子

發表於 : 2003-05-27 16:05
yesonline
抱歉,之前沒注意到規則,號己重貼修改。

我後來試著將資料install到舊版本2.0.1時,並不會發生這種註冊會員一過130人就無法再註冊新會員的狀況。而且我也試著將資料庫install到「乾淨」的2.0.4,就是不加任何mod的phpBB,結果是一樣的錯誤。後來再試phpBB2.0.3也是出同樣錯 :cry:

請問各位先進,這是怎麼樣的狀況?我初步用外行的角度猜測,會不會是存檔的資料庫中的某個資料剛好衝到php碼還是什麼的?有辦法解決嗎?

感激不盡。 :-D

發表於 : 2003-05-27 16:59
GaryFu
應該是資料庫schema問題
新版的shcema的id都採用auto_increment
而舊版的不是,是用程式去加1的…\r

所以程式版本也要配合相對應的資料庫schema

你可以檢查 phpbb_groups 這個table
將group_id改成auto_increment
再用2.0.4版程式試試…

發表於 : 2003-05-27 18:06
yesonline
GaryFu 寫:應該是資料庫schema問題
新版的shcema的id都採用auto_increment
而舊版的不是,是用程式去加1的…\r

所以程式版本也要配合相對應的資料庫schema

你可以檢查 phpbb_groups 這個table
將group_id改成auto_increment
再用2.0.4版程式試試…

太感謝了,我按您的指示改了之後,竟然不再出現錯誤訊息了。
希望就此解決,實在感激不盡:)
但不知為何會如此?又為何會卡在130個註冊者的關卡呢? :?:

還有,同樣的問題會不會發生在其他table上?要不要都改成「自動遞增」auto_increment ?

發表於 : 2003-05-27 22:16
GaryFu
應該和130註冊無關吧…\r
只是你剛好在130個user時程式換版。

至於其他table當然是有可能會發生類似問題
建議你程式升級成2.0.4時
檢查資料庫的schema是否和2.0.4相同吧

發表於 : 2003-05-28 07:08
yesonline
GaryFu 寫:應該和130註冊無關吧…\r
只是你剛好在130個user時程式換版。

至於其他table當然是有可能會發生類似問題
建議你程式升級成2.0.4時
檢查資料庫的schema是否和2.0.4相同吧

原來如此,可是請問我如何檢查資料庫的schema?在哪邊看?

謝謝。

發表於 : 2003-05-28 10:29
GaryFu
yesonline 寫:
原來如此,可是請問我如何檢查資料庫的schema?在哪邊看?

謝謝。
一般有用資料庫的程式
你找找doc、db或schemas的目錄下
可以找到他的table schema

phpbb好像是放在\db\schemas\下
如果你是用mysql的話請查mysql_schema.sql

發表於 : 2003-05-28 11:20
yesonline
GaryFu 寫: 一般有用資料庫的程式
你找找doc、db或schemas的目錄下
可以找到他的table schema

phpbb好像是放在\db\schemas\下
如果你是用mysql的話請查mysql_schema.sql
謝謝,我找到mysql_schema.sql了,但要如何看或者check它是否和phpBB2.0.4一致呢?它本來就是附在phpBB2.0.4的package中啊?
或者要改裡面哪一項呢?一大堆文字看不懂:)
歡迎您到「站長俱樂部」論壇參與討論 webmaster.club.tw :-D 十分需要像您這樣的專家 :mrgreen: