CakePHP กับการติดต่อฐานข้อมูลด้วย Unicode

blog ช่วงหลังๆคงได้เขียนเกี่ยวกับ CakePHP กันเยอะหน่อย เพราะงานในช่วงนี้ต้องกลับมาใช้ PHP ถ้าใครเข้าใจ MVC ดีอยู่แล้วผมแนะนำตัวนี้เลย ไม่รู้จะพอๆกับ Rails หรือเปล่า แต่เท่าที่ลองใช้ก็พอใจครับ

มาเข้าเรื่องกัน ในฐานข้อมูลอย่าง MySQL นั้นเราสามารถกำหนด default character set ได้ ซึ่งถ้าเราไม่บอกมันว่าเราจะคุยกับฐานข้อมูลด้วย character encoding ตัวไหน มันก็จะใช้ค่า default นั้นล่ะ ปัญหามีอยู่ว่า MySQL ที่ลงมาให้ในแต่ละ Linux Distribution กำหนด default character encoding มาไม่เหมือนกัน อย่าง Gentoo 2008.0 นี่ใช้ UTF-8 ส่วน Debian Lenny ใช้ Latin

ใน CakePHP เราสามารถกำหนดค่า encoding ได้ว่าจะใช้แบบไหน ถ้าเราไม่กำหนดมันก็จะใช้ค่า default ของระบบ เดิมผมทดสอบระบบบน Gentoo ซึ่งไม่ได้กำหนดค่านี้ลงไป ข้อมูลภาษาไทยที่ query ก็ออกมาเรียบร้อยดี แต่พอ deploy ไปบน Debian เท่านั้นล่ะ กลายเป็นเครื่องหมาย ? หมดเลย มานั่งเปิด manual ดูอีกรอบเค้าให้ระบุลงไปใน config file app/config/database.php ด้วยครับ เพื่อความปลอดภัย

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' =>  'localhost',
    'login' => 'myuser',
    'password' => 'mypass',
    'database' => 'mydb',
    'prefix' => '',
    'encoding' => 'utf8',
);

1 คิดบน “CakePHP กับการติดต่อฐานข้อมูลด้วย Unicode

  1. Pingback: CakePHP กับการติดต่อฐานข้อมูลด้วย Unicode | BobNone.Com

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s