Update 3-5-2011 !!!!
ให้อ่านเป็นภาษาไทยใน database ได้แล้ว
หลายๆ คนคงเจอปัญหาประมาณว่า มีข้อมูลอยู่ในไฟล์ Excel แล้วต้องการที่จะนำข้อมูลไปใช้กับ MySQL ผมก็เจอกับปัญหานี้เช่นกัน ลองมาหลายๆวิธีแล้วพบปัญหา import แล้ว error หรือไม่แสดงออกมาเป็นภาษาไทย
วันนี้ผมมีวิธีการ Import ข้อมูลจาก Excel เข้าสู่ MySQL และสามารถแสดงออกมาเป็นภาษาไทยในรูปแบบ UTF-8 แบบไม่มีปัญหาใดๆ ^^ มาเริ่มกันเลยดีกว่า
ก่อนอื่นผมมีตัวอย่างจากไฟล์ xls ดังนี้
ทำการ Save File Excel ให้เป็น CSV ก่อนดังนี้
ไปที่ File -> Save As -> OtherFormats
จากนั้นทำการแปลง 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 ของผมเป็นดังนี้
<?php
//ส่วนของการเชื่อมต่อฐานข้อมูล MySQL
$objConnect = mysql_connect("localhost","username","password") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("database_name");
//ทำการเปิดไฟล์ CSV เพื่อนำข้อมูลไปใส่ใน MySQL
$objCSV = fopen("member.csv", "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
//นำข้อมูลใส่ในตาราง member
$strSQL = "INSERT INTO member ";
//ข้อมูลใส่ใน field ข้อมูลดังนี้
$strSQL .="(id,name,lastname,age,tel) ";
$strSQL .="VALUES ";
//ข้อมูลตามที่อ่านได้จากไฟล์ลงฐานข้อมูล
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."') ";
//ให้ข้อมูลอยู่ในรูปแบบที่อ่านได้ใน phpmyadmin (By.SlayerBUU Credits พี่ไผ่)
mysql_query("SET NAMES UTF8");
//เพิ่มข้อมูลลงฐานข้อมูล
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "Import Done.";
?>
ขอขอบคุณ Code จาก thaicreate.comนำไฟล์ cvs ไว้ที่เดียวกับไฟล์ php เพื่อทำการ import
หากการ Import ข้อมูลไม่มีปัญหาจะขึ้นข้อความว่า Import Done.
เมื่อลองดูในฐานข้อมูลก็จะพบว่ามีข้อมูลที่เราต้องการอยู่ในฐานข้อมูลแล้ว
ตัวอย่าง Code
<?php
$objConnect = mysql_connect("localhost","username","password") or die("Error Connect to Database"); // Conect to MySQL
$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'];
}
?>
ตัวอย่างข้อมูลที่แสดง
Link เกี่ยวข้อง : http://www.thaicreate.com/php/php-convert-csv-to-mysql.html
0 ความคิดเห็น:
แสดงความคิดเห็น