หลากหลายวิธีแก้มาก

วิธีแรก ผมชอบอันนี้ครับ เพราะไม่ต้องยุ่งกับ mysql เลย แค่เปลี่ยนโค้ดของเราในการ include

ปิดไฟล์ /db/mysql.php ครับ


เพิ่มบรรทัด

mysql_query(“SET CHARACTER SET tis620″);

ต่อท้ายจาก บรรทัดที่ 61 หรือ ที่เขียนไว้ว่า

$dbselect = @mysql_select_db($this->dbname);

Code เต็มๆคือตามนี้ครับ
=================================================================
$dbselect = @mysql_select_db($this->dbname); /* บรรทัดที่ 61*/
mysql_query(“SET CHARACTER SET tis620″); /* บรรทัดที่ 62 เพิ่มเข้ามา*/
if(!$dbselect) /* บรรทัดที่ 62 เดิม ซึ่งจะกลายเป็น 63 แทน*/

วิธีสอง แก้ที่ mysql

mysql 5.1.11
phpMyAdmin – 2.9.1
PHP 5.1.6

my.ini
[client]
port= 3306
socket= E:/WWW/mysql/tmp/mysql.sock
default-character-set = tis620

# The MySQL server
[mysqld]
port= 3306
socket= E:/WWW/mysql/tmp/mysql.sock
character-set-server = utf8
collation-server = utf8_unicode_ci

1.ลบฐานข้อมูลเดิมทิ้ง และไฟล์ต่างๆในroot จริง ทิ้ง ก่อน จดจำ โค้ดภาษาที่เครื่องเซิฟเวอร์จริงใช้(ดูที่ หน้าแรก Phpmyadmin จะเห็น

2.ทดลองทำจำลองที่เครื่องเราก่อน โดยการ เปลี่ยนโค้ดภาษา ให้ เหมือนกับที่ เซิฟเวอร์จริงใช้ อย่างของผมเครื่องจำลองเป็น

mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci
ตามที่ได้เขียนไว้ข้างบนนะครับ
เซฟแล้วรีบู๊ต mysql ใหม่ ที่นี้ก็เหมือนกับเครื่องเซิฟเวอร์จริงที่เราจะส่งข้อมูลแล้ว ลองทดสอบNuke ดูที่เครื่องจำลอง เราก่อน

3.ทีนี้เข้าไป phpmyadmin เซิฟเวอร์จำลอง เพื่อ import file .sql เข้ามา สังเกตหน้าแรกจะมีโค้ดอักษรของเซิฟเวอร์จำลอง ตามที่เซ็ตไว้ ให้เซ็ตค่าต่างๆที่เกี่ยวกับภาษา ผมลองใช้หลายตัวทั้ง Tis620,Utf8 สามารถใช้ได้ในเครื่องจำลอง แต่ไม่สามารถใช้ได้ในเครื่องเซิฟเวอร์จริงจึงได้ลองกับ Latin1 แล้วก็พบว่าใช้ได้(แสดงว่าถูกโฉลกกับ เครื่องเซิฟเวอร์จริง ฮ่า…ฟลุ๊ก จริงๆ

4.โหลดฐานข้อมูลโดยใช้โค้ดภาษาเป็นลาตินไปเลย แล้วลองเปิดเว็บดู พบว่าตัวอักษรใช้ได้ทันที เพราะเน็ตเรา IE encode เป็นไทยอยู่แล้ว แต่ตัวรูปภาพต่างๆไม่มี ต้องไปปรับที่ theme ต้องเข้าไปที่ ระบบadmin ครับ โล่งอกไปที

http://www.thainuke.org/modules.php?name=Forums&file=viewtopic&t=18254

REFERENCE

http://www.thainuke.org/modules.php?name=Forums&file=viewtopic&t=10027

mysql

- ตั้งแต่เวอร์ชั่น 4.0 เป็นต้นไป หากคุณต้องการให้มันเก็บภาษาไทยถูกๆ (ไม่ขึ้น ???) เติมไอ้นี่เข้าไป

$charset = “SET character_set_results=tis620″;
mysql_query($charset) or die(“Invalid query: ” . mysql_error());

tag : mysql ภาษาไทย ???

phpmyadmin

- php 5 เป็นต้นไป ไม่ได้เซต mysql ให้ใช้ได้แบบ default ให้ไปแก้โดยเซต variable path ให้เห็น libmysql.dll และ แก้ให้เห็น extension=php_mysql.dll

- แก้ extension=php_mbstring.dllด้วยถึงจะใช้ได้

PEAR

- โหลด go-pear.php แล้วใช้คำสั่ง php go-pear.php

- เลือก directory รากให้อยู่ที่ c:\php เลย

- หลังลง pear เสร็จ ใช้คำสั่ง pear install DB.php ด้วย

deegaprogram (ไม่ต้องไปเซิร์ชที่ไหนนะครับ เป็นโปรเจคที่รับจากเพื่อนมาทำ ^^”)

- ถ้าคุณไม่คิดว่า source code โปรแกรมคุณจะถูกขังอยู่ในคอมของคุณอย่างเดียว กรุณาเขียนdoc เล็กๆน้อยๆไว้ด้วย

- register_globals ต้องเซตเป็น on จึงจะใช้ session_register() ได้ (แต่ทางที่ได้ใช้ $_SESSION ดีกว่า)

- session.save_path ต้องชี้ไปที่ไดเรคตอรี่จริง อย่าใส่ไว้ที่ c:\tmp เพราะมี security flaw

-tag_short_hand คือการเซตให้ <? ?> ใช้อ่าน php ได้เลย(แต่ระวังมันชนกับแท็ค asp, xml)

- เซตให้แสดง E_All ตอนทำ แต่ตอนใช้จริง เอาออกด้วย (security flaw)

- md5 checksum password ตอนตั้งด้วย

phpnuke

- แค่ import .sql เข้าไปก็ใช้ได้เลย (โว้ย)

- เวลา import เลือก  connection collation เป็น tis_620_thai_ci

Follow

Get every new post delivered to your Inbox.