因為主管希望使用mssql以便整合公司其他內部系統。既然是網管人員, 為何不能改用 MySQL?
謝謝你的建議,小弟會去向官方反應的。如果當真是'phpbb本身的問題', 那麼建議您:
向官方 phpbb 反映.
版主: 版主管理群
因為主管希望使用mssql以便整合公司其他內部系統。既然是網管人員, 為何不能改用 MySQL?
謝謝你的建議,小弟會去向官方反應的。如果當真是'phpbb本身的問題', 那麼建議您:
向官方 phpbb 反映.
不好意思,您是否要試著測看看 "phpbb" 這個 DBming.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:系統管理員)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 sql 語法了(請見 install/schema/schema_data.sql)某些應用程式 (特別是 Web 應用程式) 必須處理以 UTF-8 編碼方法所編碼的 Unicode 資料。SQL Server 7.0 和 SQL Server 2000 使用不同的 Unicode 編碼方式 (UCS-2),無法將 UTF-8 識別為有效的字元資料。
小弟測試完過的結果是依然寫的進去。不好意思,您是否要試著測看看 "phpbb" 這個 DB
$myDB = "test";
DB 不同,結果也有可能不同。
個人建議試看看將insert進去的資料改成中文字(ex:系統管理員)
然後將檔案存成utf-8格式再執行看看
因為從微軟的知識庫來看, 採用utf-8的web程式對MSSQL可能會有問題
小弟直接在mssql上面匯入mssql_schema.sql,結果發現這隻sql有很大的問題執行後會show出下列訊息加上在你出錯的那句語法之前, 其實也已經執行了不少的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上會不會有同樣狀況,但已確定是phpbb本身附的sql有問題,導致安裝失敗。警告: 雖已建立資料表 '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 失敗。
的確,用英文版安裝後資料庫寫的進去,的確是UTF-8的問題,謝謝各位大大的解答。剛剛實測的結果是 MSSQL 不支援 UTF8 寫入,並不是 phpBB 的 DB 給的有問題,因為我們還有測過安裝英文版就都沒問題,但是只要一寫入中文資料就掛掉了,您可以試試看,安裝時選英文,然後都不要KEY中文,應該都很正常才對^^
ming.e0625 寫:的確,用英文版安裝後資料庫寫的進去,的確是UTF-8的問題,謝謝各位大大的解答。剛剛實測的結果是 MSSQL 不支援 UTF8 寫入,並不是 phpBB 的 DB 給的有問題,因為我們還有測過安裝英文版就都沒問題,但是只要一寫入中文資料就掛掉了,您可以試試看,安裝時選英文,然後都不要KEY中文,應該都很正常才對^^
謝謝摟
ming.e0625 寫:抱歉,小弟還有個疑問想請教,小弟曾經安裝在sql2005上面,也是同樣失敗,sql2005也不支援utf-8嗎?
忽然恍然大悟了=.= 謝謝版主解答我的疑惑是的~我們就是使用 MSSQL 2005 才赫然發現,鼎鼎大名的軟軟竟然不支援 UTF8......
基本上,SQL Server 支援 Unicode 是無庸致疑的,但是問題並不出在那。ming.e0625 寫:http://msdn.microsoft.com/zh-tw/library/ms191200.aspx
他的MSDN宣稱有支援耶.......不過他的英式中文讓我看不懂到底要怎支援..........
網址如下:必須啟用 SQL Server 2005 或 SQL Server Express 的 CLR,才能讓此範例正常運作。
範例只供教育目的之用。 它們不能用於實際執行環境,而且尚未在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。 若沒有系統管理員的權限,就不應該在生產 SQL Server 資料庫或報表伺服器上,連接或使用範例應用程式及組件。
不好意思小弟又來打擾了,由於MSSQL不支援,小弟選擇方案二:使用phpBB2 Big-5 版本(因為我上微軟網站看使用CLR擴充字集的資訊,但真的不太能理解他的英式中文在寫什麼鬼),但發現phpBB2 Big-5 版本疑似沒上傳檔案功能,請問PHPBB2沒內建這功能嗎.........經過實際測試後
發現其原因的確是 utf-8 支援所造成的。
至於這個問題,建議您以下幾點事項:
1. 不使用MS-SQL。
2. 使用 phpBB2 Big-5 版本。
3. 寫信去建議 微軟 改善「中文字使用utf8編碼」 的解決方案。