บทความ PHP & MySQL

เหตุผลที่ผมทำบทความนี้ขึ้นก็ก็เพราะมีกระทู้ถามเกี่ยวกับภาษาไทย ?????? ทุกวันครับ และเป็นปัญหาที่แก้ไม่จบซะทีสำหรับผู้ที่ กำลังเริ่มเขียน MySQL 4.1.x และ 5.0.x ขึ้นไป เพราะในเวอร์ชั่นใหม่นี้ ทาง MySQL ได้ให้ความสำคัญกับ Charset มากขึ้นกว่าเวอร์ชั่น เดิม ๆ ก่อนหน้านี้ที่เรา ๆ ใช้ latin1 ในการเก็บข้อมูลที่เป็นภาษาไทยซึ่งจะมีปัญหาค่อนข้างบ่อยเกี่ยวกับการแสดงผลที่ผิดเพี้ยน การจัดเรียงที่ไม่ถูกต้อง และความจำกัดทางด้านรองรับหลาย ๆ ภาษา ทั้งนี้ผมคิดว่าการนำ Chatset มาใช้ ทาง mySQL เองต้องการแก้ปัญหาที่เกี่ยวข้องกับภาษากับการใช้งาน Application อื่น ๆ ที่รองรับรูปแบบ UTF-8 ไปหมดแล้ว คงจะเหลือแต่คนไทยส่วนมากที่ยังคงยึดตึดกับ TIS-620 ถึงคราวที่เราจะต้องเปลี่ยนมาใช้ UTF-8 กันได้แล้วครับ และผมกล้ารับประกันเลยครับว่า มันดีกว่าเดิม จะช่วยลดปัญหาต่าง ๆ ที่เกี่ยวกับภาษาไทยได้อย่างหมดเกลี้ยง ครับ

Read More

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

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

Read More

Android Read Text file in SD Card (Java Android) ตัวอย่างการเขียน Android เพื่ออ่านข้อความที่อยู่ใน Text file(Read text file) โดยในตัวอย่างนี้มีทั้งอ่านข้อความที่มีบรรทัดเดียว และกรณีที่มีหลายบรรทัดจะแสดงข้อความใน ListView

รูปแบบการอ่านข้อความที่อยู่ในไฟล์

1.String path = "/mnt/sdcard/mydata/thaicreate.txt";
2.File file = new File(path);
3.BufferedReader br = new BufferedReader(new FileReader(file));
4.ArrayList<String> myArr = new ArrayList<String>();
5.String line;
6.while ((line = br.readLine()) != null) {
7.myArr.add(line);
8.}

Read More

สวัสดีครับ บทความนี้ผมมาอธิบายต่อจากบทความในกลุ่มการจัดการฐานข้อมูลบน Mysql (หลังจากบทความที่แล้ว Update) ซึ้งผมแบ่งเนื้อหามาอธิบายทีละเล็กน้อยเนื้อหาจะได้ไม่เยอะจนเกินไป ในส่วนนี้คือการลบข้อมูล(Delete) ในฐานข้อมูล Mysql ดูบทความที่เกี่ยวข้องก่อนหน้าซักหน่อยครับ

–  เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์

–  (Insert) การเพิ่มข้อมูลบน Mysql

–  (Update) การแก้ไขข้อมูลบน Mysql

!! ควรย้อนไปอ่านบทความ “เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์” ก่อนนะครับ

Read More

สวัสดีครับหายไปนาน บทความนี้ผมมาอธิบายต่อจากบทความในกลุ่มการจัดการฐานข้อมูลบน Mysql (หลังจากบทความที่แล้ว Insert) ซึ้งผมแบ่งเนื้อหามาอธิบายทีละเล็กน้อยเนื้อหาจะได้ไม่เยอะจนเกินไป ในส่วนนี้คือการแก้ไขข้อมูล(Update) ในฐานข้อมูล Mysql ดูบทความที่เกี่ยวข้องก่อนหน้าซักหน่อยครับ

–  เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์

–  (Insert) การเพิ่มข้อมูลบน Mysql

!! ควรย้อนไปอ่านบทความ “เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์” ก่อนนะครับ

Read More

สวัสดีครับ บทความนี้ผมจะมาอธิบายตัวอย่างซึ้งเป็นที่นิยม (จริงๆก็มีบทความเรื่องนี้อยู่มากแล้วหละ) และ บ่อยครั้งเราต้องนำไปใช้งาน นั้นคือการเชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์ของเราผ่านแอนดรอยด์แอพพลิเคชั่น ก่อนที่เราจะมาดูโค้ดตัวอย่างกันผมจะอธิบายหลักการทำงานคร่าวๆของตัวอย่างให้ผู้อ่านได้เข้าใจก่อนจากหัวข้อข้างล่างครับ

!! บทความนี้เหมาะกับผู้ที่ต้องการเก็บข้อมูลลงบนเซิฟเวอร์ ไม่ใช่บนอุปกรณ์แอนดรอยด์ หรือ การ์ดต่างๆ

!! ควรมีความรู้เรื่องฐานข้อมูล Mysql ก่อนนะครับ

Read More

สวัสดีครับ บทความนี้ผมมาอธิบายต่อจากบทความที่แล้ว (เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์) ซึ้งผมได้แบ่งเนื้อหามาอธิบายทีละเล็กน้อย ในส่วนนี้คือการเพิ่มข้อมูล(Insert) ลงฐานข้อมูล Mysql เอาหละไปดูโค้ดกัน

!! ควรย้อนไปอ่านบทความ “เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์” ก่อนนะครับ

 

โค้ดตัวอย่าง

สามารถดาวน์โหลดโปรเจ็คตัวอย่างได้ที่ -> MysqlExample(Insert)

!! ใช้ฐานข้อมูลชุดเดิมจากบทความ เชื่อมต่อฐานข้อมูล Mysql บนเซิฟเวอร์

Read More

ฟังก์ชั่น mysql_insert_id()

 

ความหมายของฟังก์ชั่นและการใช้งาน

การคืนค่าข้อมูลของฟิลด์ที่เป็นแบบ auto_increment ของแถวใหม่ที่ได้เพิ่มเข้าไปโดยคำสั่ง INSERT ของ SQL ด้วยฟังก์ชั่น mysql_insert_id()

Read More

เราสามารถอ่านค่า id ล่าสุดจากฐานข้อมูล ได้หลายวิธี ซึ่งแต่ละวิธีก็มีข้อจำกัดแตกต่างกันเล็กน้อยครับ เรามาดูกันว่ามีวิธีใดบ้าง

1.ใช้ฟังก์ชั่น mysql_insert_id() ของ PHP ซี่งฟังก์ชั่นนี้จะคืนค่า id ล่าสุด ที่ทำการ บันทึก หรือ แก้ไข ย้ำว่า บันทึก หรือ แก้ไขนะครับ ถึงจะสามารถคืนค่าออกมาได้ถูกต้อง ฟังก์ชั่นนี้มีข้อเสียเล็กน้อย ตรงที่ เราจะต้องทำการอ่านค่านี้ทันที หลังจากทำการ insert หรือ update เพื่อป้องกันการอัปเดทค่าจากคนอื่น ซึ่งจะทำให้ ค่าที่ได้ไม่ถูกต้อง

<?php
$sql = “INSERT INTO table_name …..”; // query
     $res = mysql_query($sql); // ทำคำสั่ง INSERT
     $last_id = mysql_insert_id(); // คืนค่า id ที่ insert ล่าสุด
 ?>

Read More

The Registrant is the licensee of the domain name – this is the individual or company who has the right to use, sell or destroy a domain name.

The Administrative Contact is the licensee’s appointed agent for the functions above and any other purpose. In the case that the Registrant is a company the Administrative Contact should be an employee, director, manager of the company. This person has full authority for all changes in our system so care should be taken in selecting the appropriate person to nominate for this role.

The Technical Contact is the person responsible for maintaining the DNS nameservers associated with the domain name. This enables that contact to make updates if necessary if, for example, the name of the DNS nameserver changes.

The Billing Contact is the primary point of contact responsible for paying for the domain name’s license renewals.

Read More