วันนี้เราจะมาดูวิธีการ Import ข้อมูลจาก Excel เข้าสู่ Database MySQL และสามารถแสดงออกมาเป็นภาษาไทยในรูปแบบ UTF-8 แบบไม่มีปัญหาใดๆ
ก่อนอื่นผมมีตัวอย่างจากไฟล์ xls ดังนี้
ทำการ Save File Excel ให้เป็น CSV ก่อนดังนี้
ไปที่ File -> Save As -> OtherFormats
จากนั้นเลือก Formats เป็น CSV (Comma delimited) (*.csv)
จากนั้นทำการแปลง Encode ของไฟล์เป็น UTF-8 โดย
เปิดไฟล์ CVS ด้วย Notepad
หาก Save ถูก Formats จะพบข้อมูลดังรูป
ทำการลบข้อมูลหัวตารางออกให้เลือกแต่ข้อมูลที่เราต้องการนำไปใส่ใน MySQL
ไปที่ File -> Save As
ด้านล่างเลือก Encoding เป็น UTF-8
เข้าไปสร้างฐานข้อมูลและตารางใน MySQL ตามข้อมูลที่เราต้องการ
ตัวอย่างของผมเป็นดังนี้
สร้างฐานข้อมูลชื่อ slayer_project และเลือก MySQL connection collation: เป็น utf8_unicode_ci
สร้างตารางตามข้อมูลที่มีอยู่
จากนั้นทำการเขียน Code PHP เพื่ออ่านข้อมูลจากไฟล์ CVS ลงฐานข้อมูล MySQL
ตัวอย่าง Code ของผมเป็นดังนี้
$objConnect = mysql_connect("localhost","username","password") or
die("Error Connect to Database");
$objDB = mysql_select_db("database_name");
$objCSV = fopen("member.csv", "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO member ";
$strSQL .="(id,name,lastname,age,tel) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."') ";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "Import Done.";
?>
นำไฟล์ cvs ไว้ที่เดียวกับไฟล์ php เพื่อทำการ import
หากการ Import ข้อมูลไม่มีปัญหาจะขึ้นข้อความว่า Import Done.
เมื่อลองดูในฐานข้อมูลก็จะพบว่ามีข้อมูลที่เราต้องการอยู่ในฐานข้อมูลแล้ว
ลองเขียน Code ดึงข้อมูลออกมาแสดงเปิดดูในรูปแบบ UTF-8 ก็แสดงภาษาไทยได้อย่างไม่มีปัญหา ก่อนที่จะ query ข้อมูลออกมาต้อง mysql_query("SET NAMES UTF8");ก่อนด้วยครับ
ตัวอย่าง Code
$objConnect = mysql_connect("localhost","username","password") or
die("Error Connect to Database");
$objDB = mysql_select_db("database_name");
$sql = ("SELECT * from member");
mysql_query("SET NAMES UTF8");
$result = mysql_query($sql);
While($row= mysql_fetch_array($result)){
echo "id = ".$row['id'];
echo "name = ".$row['name'];
echo "lastname = ".$row['lastname'];
echo "age = ".$row['age'];
echo "tel = ".$row['tel'];
}
?>
ตัวอย่างข้อมูลที่แสดง