 |
ช่วยหน่อยครับ SQL2008 ไม่สามารถ query ข้อมูลที่เป็นภาษาไทยได้ |
|
 |
|
|
 |
 |
|
เห็นเขาใช้กัน นะครับ
ีinsert into table set `data'=N'ภาษาไทย'; ก็ลองดูนะครับ
N ใช้นำหน้าข้อความที่เป็น unicode ครับ
|
 |
 |
 |
 |
Date :
2014-10-13 07:47:59 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใส่ N แล้วก็ยังไม่สามารถ ผ่านครับ
Code (PHP) เก่า
mssql_query("
update [T01] set [C01]='".$_POST['new']."' where [C01]='".$_POST['character']."';
update [T02] set [C02]='".$_POST['new']."' where [C02]='".$_POST['character']."';
");
Code (PHP) แก้ไข
mssql_query("
update [T01] set [C01]='".$_POST['new']."' where [C01]=N'".$_POST['character']."';
update [T02] set [C02]='".$_POST['new']."' where [C02]=N'".$_POST['character']."';
");
เหมือนกับว่ามันไม่สามารถ ค้นหาเจอครับ สมมุติว่า ถ้าการค้นหาใน where เป็นภาษาอังกฤษ จะสามารถอัพเดตผ่านได้ แต่ถ้าเป็นภาษาไทย ยังหาไม่เจอครับ ไม่รู้จะแก้ไขยังไงดี
|
 |
 |
 |
 |
Date :
2014-10-13 13:47:45 |
By :
valentine25 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่แน่ใจตอบตรงคำถามหรือป่าวนะคะ
ถ้าเป็นที่ phpmyadmin ให้ set เป็น tis-620
ถ้า update ข้อมูลจากหน้าเวปให้ใส่
mysql_query("set name 'tis620'");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client=tis620");
mysql_query("SET character_set_connection=tis620");
ไว้หน้า mysql_connect
cradit จากเวปนี้ค่ะ
|
 |
 |
 |
 |
Date :
2014-10-13 13:47:59 |
By :
shushu |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ของเก่า insert โดยไม่ใช้ N เวลา update สนส่วนของ Where ก็ไม่ควรมี N
จนกว่าเราจะแน่ใจว่า ข้อมูลเป็นรูปแบบใหม่ก่อนครับ
ส่วนการ set เข้าเป็นรูปแบบใหม่ ก็ควร ใส่ N
สำหรับ where ุถ้าไม่แน่ใจว่าของเก่าหรือใหม่ ก็ใส่มันเข้าไปทั้ง สองอยา่งเลย
Code (PHP)
mssql_query("
update [T01] set [C01]=N'$_POST[new]'
where [C01]='$_POST[character]' or [C01]=N'$_POST[character]' ;
update [T02] set [C02]=N'$_POST[new]'
where [C02]='$_POST[character]' or [C02]=N'$_POST[character]' ;
");
อยากให้ลอง insert ของใหม่ สร้าง table ใหม่ขึ้นมาทดลองซัก table ว่าข้อมูลได้ตรงกันไหม ก่อนที่จะ
เข้าไป แก้ไขของเก่านะครับ
สำหรับการแสดง ผล ใน HTML ต้องกำหนด meta charset utf-8 ด้วยนะครับ
Code (JavaScript)
<!doctype html>
<html>
<head>
<meta charset="utf-8"><!-- บันทัดนี้ครับ กำหนดภาษาไทย -->
<title>Untitled Document</title>
</head>
<body>
ทดสอบภาษาไทย
</body>
</html>
|
ประวัติการแก้ไข 2014-10-13 14:00:54 2014-10-13 14:01:16 2014-10-13 14:07:26 2014-10-13 14:08:18 2014-10-13 14:12:16
 |
 |
 |
 |
Date :
2014-10-13 14:00:32 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอดูโค๊ดที่แก้ไขแล้ว ทดสอบไม่ผ่านหน่อยครับ
|
 |
 |
 |
 |
Date :
2014-10-13 14:49:04 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แก้ไขได้แล้วนะครับ ต้องเปลี่ยนตามหน้านี้
http://mssqlbase.blogspot.com/2012/06/sql-server-2008r2-change-server.html
|
ประวัติการแก้ไข 2014-10-13 15:00:45
 |
 |
 |
 |
Date :
2014-10-13 14:51:11 |
By :
valentine25 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หรือจะลองใช้ sqlsrv แทน mssql
|
 |
 |
 |
 |
Date :
2014-10-13 15:00:45 |
By :
Krungsri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แปลงก่อนครับใช้ iconv เช่น
Code (PHP)
$name = iconv("UTF-8","TIS-620",$_POST['name']);
insert into tb_name (name) values ('$name');
เวลาแสดงผลก็กลับกันครับ
Code (PHP)
$name = iconv("TIS-620","UTF-8",$fetch['name']);

|
 |
 |
 |
 |
Date :
2014-10-13 15:13:00 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|