ลงทะเบียน
ใกล้กัน ช่วยให้คุณแชร์เรื่องราวต่างๆ กับผู้คนมากมาย

สำหรับผู้เขียนเว็บ PHP v5.6.x ใช้ฟังค์ชั่น mssql_query ติดต่อฐานข้อมูล SQL SERVER แสดงผลลัพท์ภาษาไทยเป็น "??????"

 

เพิ่มเติม: เรียนรู้การใช้คำสั่ง SELECT ใน MS SQL SERVER: https://docs.microsoft.com/en-us/sql/t-sql/queries/select-examples-transact-sql?view=sql-server-2017

 

สาเหตุเกิดจาก: โมดูลเสริมชื่อ freetds ใช้ค่าเริ่มต้นเป็น UTF-8 เพื่อติดต่อฐานข้อมูล SQL SERVER (มีชุดตัวอักษรเริ่มต้นเป็น THAI_CI_AS เทียบกับ LINUX คือ TIS-620)

 

การแก้ไขมี 2 วิธีคือ

1. เพิ่มไว้บนสุดของไฟล์ PHP

ini_set('mssql.charset', 'TIS-620'); 

2. แก้ไฟล์ freetds.conf โปรดดูด้านล่าง

 

Here are some things you might need to know:
1. Install mssql support for Debian (Lenny/Squeeze):
apt-get install php5-sybase

2. When you got this error message:
"Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier."

In /etc/freetds/freetds.conf add these two lines (last two):
[global]
;tds version = 4.2
tds version = 8.0
client charset = UTF-8

You can edit "charset" in php.ini too (but you don't need if you did it previously in freetds.conf):
; Specify client character set..
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
mssql.charset = "UTF-8"

3. Use nchar/nvarchar/ntext column types if you need unicode support.

 

 

Captcha Challenge
ลองรูปภาพใหม่
Type in the verification code above