• LINE ID: @CARRENT
  • [email protected]
VoucherCar
  • หน้าแรก
  • สินค้า
    • แยกจังหวัดรถเช่า
    • แยกตามระดับเครื่องยนต์
    • แยกตามราคารถเช่า
    • แยกตามยี่ห้อรถเช่า

    • ตะกร้าสินค้า
    • จองด่วนน้อยกว่า 7 วัน
    • รถเช่า รายสัปดาห์
  • บทความเนื้อหา
    • คำถามพบบ่อย
    • บทความรถเช่า
    • สาขารถเช่า
    • WEBBOARD
  • วิธีการสั่งซื้อ
    • วิธีการสั่งซื้อ
    • รายละเอียดการชำระเงิน
  • จองด่วน
  • ติดต่อเรา
เข้าสู่ระบบ
รถเช่าราคาประหยัดadver
รถเช่า ประเภทต่างๆ

แยกตามจังหวัด แยกตามเครื่องยนต์ แยกตามราคา แยกตามยี่ห้อ รถเช่า รายสัปดาห์

คำถามพบบ่อยเกียวกับรถเช่า ข่าวสารบทความรถเช่า สาขาบริษัทรถเช่า เว็บบอร์ด (Webboard)

วิธีสั่งซื้อ รายละเอียดการชำระเงิน
ติดต่อเรา
รถเช่า จังหวัด

---
กลับไปหน้าเว็บบอร์ด

แสดงผลภาษาไทย PHP กับ MySQL ด้วยฟังก์ชั่นของ mysqli (UTF8)

ผู้ตั้งกระทู้: attachai
วันที่: 23/06/2015 เวลา: 16:50:03
http://www.thaicreate.com/community/php-mysql-mysqli-thai-utf8.html

แสดงผลภาษาไทย PHP กับ MySQL ด้วยฟังก์ชั่นของ mysqli (UTF8) ช่วงหลัง ๆ เห็นสมาชิกเริ่มหันมาใช้ function ของmysqli กันมากขึ้น ซึ่งก็ยังมีหลาย ๆ คนที่ใช้รูปแบบการเขียนภาษาไทยแบบผิด ๆ อยู่ ซึ่งปัญหาที่ตามมาคือ แสดงผลภาษาไทยได้ถูกต้องบ้าง ไม่ถูกต้องบ้าง และเมื่อจัดเก็บลงบน MySQL แล้ว บน phpMyAdmin กลับอ่านไม่ออก ไม่สามารถ Export นำไปใช้งานที่อื่นได้ ซึ่งจะเป็นปัญหาที่สะสมรอปัญหาใหญ่ที่จะเกิดขึ้นในอนาคตตามมาอย่างแน่นอน



แสดงผลภาษาไทย PHP กับ MySQL ด้วยฟังก์ชั่นของ mysqli (UTF8)


อย่างที่เราทราบกันอยู่แล้วว่าตั้งแต่ MySQL เวอร์ชั่น 4.x หรือ 5.x ขึ้นไปจะให้ความสำคัญกับ Collation ของ Charset มาก โดยตัวCollation นี่เองจะเป็นระบุชนิดของข้อมูล Charset ที่จะจัดเก็บ ซึ่งเป็นกระบวนการบน Database ของ MySQL ที่จะจัดการกับข้อมูลนั้น ๆ และสำหรับ Collation ที่ได้รับความนิยมมากที่สุดก็คือ utf8 เพราะมันสามารถรองรับการจัดเก็บได้หลากหลายภาษา ไม่จำกัดเฉพาะภาษาไทยเท่านั้น โดยข้อมูลจะถูกจัดเก็บในรูปแบบของ Character encoding คือ ทุก Character จะผ่านการแปลงก่อนการจัดเก็บ และ ค่อยแปลงกลับก่อนนำมาใช้ ฉะนั้นมันจะสามารถปัญหาเรื่องภาษาไทยและภาาาอื่น ๆ ได้อย่างแม่นยำไม่ผิดเพี้ยนแน่นอน

การสร้างตารางของ MySQL ให้ Colation เป็นแบบ UTF-8

CREATE TABLE IF NOT EXISTS `tb_register` ( `UID` int(11) NOT NULL auto_increment, `NAME` varchar(150) NOT NULL, `SURNAME` varchar(150) NOT NULL, PRIMARY KEY (`UID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ในกรณีที่เขียนผ่าน Query สามารถเพิ่มคำสั่ง CHARSET=utf8 ในส่วนของการ Create Table

PHP MySQL ภาษาไทยกับ mysqli utf8

ในกรณีที่สร้างบย phpMyAdmin สามารถเลือกได้จาก Collation ซึ่งในภาพจะเห็นว่าจะมี utf8 หลายประเภทมาก ซึ่งทั้งหมดนี้รวมอยู่ใน utf8 เพียงแต่ มันแยกออกเป็นหลายตัว ซึ่งส่วนมากจะเป็นรูปแบบการจัดเรียงที่แตกต่างกันไป โดยปกติแล้วให้เลือกใช้แบบ general ได้เลย

  • ci = case-insensitive จัดเรียงตามตัวอักษร มองตัวอักษรใหญ่ และเล็กมีความสำคัญเท่ากัน โดยปกติมักจะใช้ collation แบบ ci
  • cs = case sensitive จัดเรียงโดยให้ความสำคัญกับอักษรตัวใหญ่ มากกว่าตัวเล็ก เช่น Z จะมาก่อน a
  • bin = binary ในรูปแบบของ binaryใช้สำหรับการเปรียบเทียบ


หลังจากที่สร้างตารางบน MySQL ให้เป็นแบบ UTF8 แล้ว ขั้นตอนในการเขียน PHP ด้วยฟังก์ชั่นของ mysqli คือ 

<meta http-equiv=Content-Type content="text/html; charset=utf-8">

กำหนด meta ของ charset=utf-8 เสมอ เพราะข้อมูลที่จะส่งไปยัง Server จะอยู่ในรูปแบบของ utf8 โดยที่ไม่ต้องไปแปลงให้เป็นutf8 ก่อนจัดเก็บ

01.<?php   
02.$serverName = "localhost";
03.$userName = "root";
04.$userPassword = "root";
05.$dbName = "mydatabase";
06. 
07.$objCon = mysqli_connect($serverName,$userName,$userPassword,$dbName);
08. 
09.mysqli_set_charset($objCon, "utf8");

เพิ่ม mysqli_set_charset($objCon, "utf8"); ให้กับการเชื่อมต่อ ก็ถือว่าตอนนี้ข้อมูลทั้งหมดจะถูก รับ-ส่ง จัดเก็บในรูปแบบของutf8 แล้ว

Example

01.<html>
02.<head>
03.<title>ThaiCreate.Com PHP/MySQL (Thai UTF8)</title>
04.<meta http-equiv=Content-Type content="text/html; charset=utf-8">
05.</head>
06. ความคิดเห็นทั้งหมด
ยังไม่มีความคิดเห็น มาร่วมแสดงความคิดเห็นเป็นคนแรกสิ!
ร่วมแสดงความคิดเห็น

Copyright © 2026 vouchercar.com

*** ไม่อนุญาตให้ลงโฆษณาขายสินค้าใดๆ ก่อนได้รับอนุญาตจากทางเว็บนะคะ ***