[PHP] 用 MDB2 寫入 UTF-8 字串到 MSSQL 資料庫

發表時間: 2012-09-14 18:13:37
一劃
2012-09-14 18:13:37

PHP透過 PEAR_MDB2 在寫入 mssql 時, 雖然在freetds 宣告了 utf-8 格式, 但在寫入簡體中文時還昰會寫入變成問號(?), 比如我要寫入 "这是中文测试", 那麼在資料庫就會變成 "?是中文??", 中間穿插日文也是一樣, 直接在 SQL Server 上試時, 狀況也相同, 實在搞不清楚要調整SQL Server 哪裡才會正常, 但如果有寫入時強制規定字串為 N data type 則可成功寫入。 如

UPDATE abc SET name=N'这是中文测试'

因此, 在假設我之後所有寫入在mssql的字串資料都是 utf-8 的條件下, 直接修改 PEAR_MDB2 的內容 Driver/Datatype/Common.php line:1233``` return "'".$value."'";

改為

if ($db->dbsyntax == 'mssql') { return "N'".$value."'"; } else { return "'".$value."'"; }



這樣就ok了

回應文章

  • :D
  • ::urr::
  • *^^*
  • ::iIi::
  • ::|||::
  • ::love::
  • :::~~::
  • ::KISS::
  • ::cry::
  • [[ZZZ]]
  • :(
  • ::hey::
  • ::ur::
  • ::\_/::
  • ::Arr::
  • ::X::
  • :p
  • ::?::
  • ::GOD::
  • ::^_^::
  • ^_-
  • ::三小::
  • ::ccc::
  • ::grrr::