phpbb3.2+mssql的問題

phpBB Installation & Usage Support
phpBB 3 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 3.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

既然是網管人員, 為何不能改用 MySQL?
因為主管希望使用mssql以便整合公司其他內部系統。
如果當真是'phpbb本身的問題', 那麼建議您:
向官方 phpbb 反映.
謝謝你的建議,小弟會去向官方反應的。

頭像
hentaibbc
版面管理員
版面管理員
文章: 342
註冊時間: 2005-09-01 18:01

Re: phpbb3.2+mssql的問題

文章 hentaibbc »

ming.e0625 寫:小弟寫了一隻小程式作測試看小弟的電腦可否寫入或查詢mssql,結論是可行的而且一樣用sa的帳號連結,所以並非php設定問題,應該是phpbb本身的問題。

程式如下
===========================================================
$myServer = "localhost";
$myUser = "sa";
$myPass = "12345";
$myDB = "test";
$s = @mssql_connect( $myServer, $myUser, $myPass )
or die( "Couldn't connect to SQL Server on $myServer" );
$d = @mssql_select_db($myDB, $s)
or die( "Couldn't open database $myDB" );
$result = mssql_query("INSERT INTO username (username,userpsw) VALUES ('abc','abc')");
============================================================
不好意思,您是否要試著測看看 "phpbb" 這個 DB
$myDB = "test";
DB 不同,結果也有可能不同。

~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

Re: phpbb3.2+mssql的問題

文章 ~倉木麻衣~ »

ming.e0625 寫:小弟寫了一隻小程式作測試看小弟的電腦可否寫入或查詢mssql,結論是可行的而且一樣用sa的帳號連結,所以並非php設定問題,應該是phpbb本身的問題。

程式如下
===========================================================
$myServer = "localhost";
$myUser = "sa";
$myPass = "12345";
$myDB = "test";
$s = @mssql_connect( $myServer, $myUser, $myPass )
or die( "Couldn't connect to SQL Server on $myServer" );
$d = @mssql_select_db($myDB, $s)
or die( "Couldn't open database $myDB" );
$result = mssql_query("INSERT INTO username (username,userpsw) VALUES ('abc','abc')");
============================================================
個人建議試看看將insert進去的資料改成中文字(ex:系統管理員)
然後將檔案存成utf-8格式再執行看看

因為從微軟的知識庫來看, 採用utf-8的web程式對MSSQL可能會有問題
說明在 SQL Server 中儲存 UTF-8 資料
某些應用程式 (特別是 Web 應用程式) 必須處理以 UTF-8 編碼方法所編碼的 Unicode 資料。SQL Server 7.0 和 SQL Server 2000 使用不同的 Unicode 編碼方式 (UCS-2),無法將 UTF-8 識別為有效的字元資料。
加上在你出錯的那句語法之前, 其實也已經執行了不少的insert sql 語法了(請見 install/schema/schema_data.sql)
會出現可能沒權限的問題也只是因為程式沒有顯示錯誤訊息, 而是改以INST_ERR_FATAL_DB這個語系的內容(language/zh_cmn_hant/install.php)來顯示很籠統的錯誤狀況
(見install/install_install.php第1231行及install/index.php第666行db_error()的內容)
因此推測這問題應是出在UTF-8編碼的身上
謝絕所有私人訊息詢問外掛相關問題
有問題請直接於版上發表, 集思廣議絕對比專挑特定人士詢問來的好

竹貓禁止發表含破解相關的軟體, 違者砍文
不要跟我講別的地方都可以發, 為什麼竹貓就不行
免費不等於破解, 傻傻的搞不清楚

頭像
hentaibbc
版面管理員
版面管理員
文章: 342
註冊時間: 2005-09-01 18:01

Re: phpbb3.2+mssql的問題

文章 hentaibbc »

經過實際測試後
發現其原因的確是 utf-8 支援所造成的。

至於這個問題,建議您以下幾點事項:
1. 不使用MS-SQL。
2. 使用 phpBB2 Big-5 版本。
3. 寫信去建議 微軟 改善「中文字使用utf8編碼」 的解決方案。

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

不好意思,您是否要試著測看看 "phpbb" 這個 DB
$myDB = "test";
DB 不同,結果也有可能不同。
小弟測試完過的結果是依然寫的進去。
個人建議試看看將insert進去的資料改成中文字(ex:系統管理員)
然後將檔案存成utf-8格式再執行看看

因為從微軟的知識庫來看, 採用utf-8的web程式對MSSQL可能會有問題

小弟測試的結果是寫的進去,只不過變亂碼而已。
加上在你出錯的那句語法之前, 其實也已經執行了不少的insert sql 語法了(請見 install/schema/schema_data.sql)
會出現可能沒權限的問題也只是因為程式沒有顯示錯誤訊息, 而是改以INST_ERR_FATAL_DB這個語系的內容(language/zh_cmn_hant/install.php)來顯示很籠統的錯誤狀況
(見install/install_install.php第1231行及install/index.php第666行db_error()的內容)
因此推測這問題應是出在UTF-8編碼的身上
小弟直接在mssql上面匯入mssql_schema.sql,結果發現這隻sql有很大的問題執行後會show出下列訊息
警告: 雖已建立資料表 'phpbb_extension_groups',但其最大資料列的大小 (8562) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_extension_groups',但其最大資料列的大小 (8562) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_forums',但其最大資料列的大小 (10278) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_forums',但其最大資料列的大小 (10278) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_privmsgs',但其最大資料列的大小 (8920) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_privmsgs',但其最大資料列的大小 (8920) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_styles_template_data',但其最大資料列的大小 (8151) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_users',但其最大資料列的大小 (11235) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
警告: 雖已建立資料表 'phpbb_users',但其最大資料列的大小 (11235) 已超過單列所允許的最大位元組數目 (8060)。如果在此資料表中 INSERT 或 UPDATE 資料行而會導致資料列長度超過 8060 位元組時,則會導致 INSERT 或 UPDATE 失敗。
小弟不知道其他人安裝在mssql上會不會有同樣狀況,但已確定是phpbb本身附的sql有問題,導致安裝失敗。
感謝各位的幫助讓小弟找出問題來。
謝謝摟

小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

Re: phpbb3.2+mssql的問題

文章 小竹子 »

剛剛實測的結果是 MSSQL 不支援 UTF8 寫入,並不是 phpBB 的 DB 給的有問題,因為我們還有測過安裝英文版就都沒問題,但是只要一寫入中文資料就掛掉了,您可以試試看,安裝時選英文,然後都不要KEY中文,應該都很正常才對^^
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

剛剛實測的結果是 MSSQL 不支援 UTF8 寫入,並不是 phpBB 的 DB 給的有問題,因為我們還有測過安裝英文版就都沒問題,但是只要一寫入中文資料就掛掉了,您可以試試看,安裝時選英文,然後都不要KEY中文,應該都很正常才對^^
的確,用英文版安裝後資料庫寫的進去,的確是UTF-8的問題,謝謝各位大大的解答。
謝謝摟

小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

Re: phpbb3.2+mssql的問題

文章 小竹子 »

其實這個問題我們在兩三個月前就遇過了,當時接到科學園區的某公司要求我們使用 MSSQL 專案開發,就遇到了這個問題,迄今依舊無解,因為 MSSQL 只吃 BIG5,甚至到現在 2008 版本依舊不知原 UTF8 >"<

ming.e0625 寫:
剛剛實測的結果是 MSSQL 不支援 UTF8 寫入,並不是 phpBB 的 DB 給的有問題,因為我們還有測過安裝英文版就都沒問題,但是只要一寫入中文資料就掛掉了,您可以試試看,安裝時選英文,然後都不要KEY中文,應該都很正常才對^^
的確,用英文版安裝後資料庫寫的進去,的確是UTF-8的問題,謝謝各位大大的解答。
謝謝摟
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

抱歉,小弟還有個疑問想請教,小弟曾經安裝在sql2005上面,也是同樣失敗,sql2005也不支援utf-8嗎?

小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

Re: phpbb3.2+mssql的問題

文章 小竹子 »

是的~我們就是使用 MSSQL 2005 才赫然發現,鼎鼎大名的軟軟竟然不支援 UTF8......


ming.e0625 寫:抱歉,小弟還有個疑問想請教,小弟曾經安裝在sql2005上面,也是同樣失敗,sql2005也不支援utf-8嗎?
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

是的~我們就是使用 MSSQL 2005 才赫然發現,鼎鼎大名的軟軟竟然不支援 UTF8......
忽然恍然大悟了=.= 謝謝版主解答我的疑惑

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

http://msdn.microsoft.com/zh-tw/library/ms191200.aspx
他的MSDN宣稱有支援耶.......不過他的英式中文讓我看不懂到底要怎支援..........

頭像
hentaibbc
版面管理員
版面管理員
文章: 342
註冊時間: 2005-09-01 18:01

Re: phpbb3.2+mssql的問題

文章 hentaibbc »

ming.e0625 寫:http://msdn.microsoft.com/zh-tw/library/ms191200.aspx
他的MSDN宣稱有支援耶.......不過他的英式中文讓我看不懂到底要怎支援..........
基本上,SQL Server 支援 Unicode 是無庸致疑的,但是問題並不出在那。
UTF-8 和 Unicode 並不相同。
您可以參考這篇http://www.php.net/manual/en/function.u ... encode.php

而SQL Server支援是以 UCS-2 為主
根據微軟對UTF-8的解決方案是,請轉換為UCS-2格式。
http://support.microsoft.com/kb/232580/ ... sid=global [2006/02/20]

另外,有找到微軟對 utf-8 的另一解決方案,使用CLR擴充字集,但是要注意它後面的聲明。
必須啟用 SQL Server 2005 或 SQL Server Express 的 CLR,才能讓此範例正常運作。

範例只供教育目的之用。 它們不能用於實際執行環境,而且尚未在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。 若沒有系統管理員的權限,就不應該在生產 SQL Server 資料庫或報表伺服器上,連接或使用範例應用程式及組件。
網址如下:
http://technet.microsoft.com/zh-tw/libr ... 60893.aspx

以上資料,供您參考。

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

好麻煩的mssql~不過已經瞭解了,謝謝大大的解答。

ming.e0625
星球普通子民
星球普通子民
文章: 18
註冊時間: 2008-07-21 18:21

Re: phpbb3.2+mssql的問題

文章 ming.e0625 »

經過實際測試後
發現其原因的確是 utf-8 支援所造成的。

至於這個問題,建議您以下幾點事項:
1. 不使用MS-SQL。
2. 使用 phpBB2 Big-5 版本。
3. 寫信去建議 微軟 改善「中文字使用utf8編碼」 的解決方案。
不好意思小弟又來打擾了,由於MSSQL不支援,小弟選擇方案二:使用phpBB2 Big-5 版本(因為我上微軟網站看使用CLR擴充字集的資訊,但真的不太能理解他的英式中文在寫什麼鬼),但發現phpBB2 Big-5 版本疑似沒上傳檔案功能,請問PHPBB2沒內建這功能嗎.........

主題已鎖定

回到「[3.0.x] 安裝與使用」