Update 3-5-2011 !!!!
ให้อ่านเป็นภาษาไทยใน database ได้แล้ว
หลายๆ คนคงเจอปัญหาประมาณว่า มีข้อมูลอยู่ในไฟล์ Excel แล้วต้องการที่จะนำข้อมูลไปใช้กับ MySQL ผมก็เจอกับปัญหานี้เช่นกัน ลองมาหลายๆวิธีแล้วพบปัญหา import แล้ว error หรือไม่แสดงออกมาเป็นภาษาไทย
วันนี้ผมมีวิธีการ Import ข้อมูลจาก Excel เข้าสู่ 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 ของผมเป็นดังนี้
ขอขอบคุณ Code จาก thaicreate.com
นำไฟล์ cvs ไว้ที่เดียวกับไฟล์ php เพื่อทำการ import
หากการ Import ข้อมูลไม่มีปัญหาจะขึ้นข้อความว่า Import Done.
เมื่อลองดูในฐานข้อมูลก็จะพบว่ามีข้อมูลที่เราต้องการอยู่ในฐานข้อมูลแล้ว
ลองเขียน Code ดึงข้อมูลออกมาแสดงเปิดดูในรูปแบบ UTF-8 ก็แสดงภาษาไทยได้อย่างไม่มีปัญหา ก่อนที่จะ query ข้อมูลออกมาต้อง mysql_query("SET NAMES UTF8");ก่อนด้วยครับ
ตัวอย่าง Code
ตัวอย่างข้อมูลที่แสดง
Credits : พี่ตั้ม , อ.กบ , thaicreate.com , พี่ไผ่
Link เกี่ยวข้อง : http://www.thaicreate.com/php/php-convert-csv-to-mysql.html
ให้อ่านเป็นภาษาไทยใน 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 ของผมเป็นดังนี้
- //ส่วนของการเชื่อมต่อฐานข้อมูล 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.";
- ?>
นำไฟล์ cvs ไว้ที่เดียวกับไฟล์ php เพื่อทำการ import
หากการ Import ข้อมูลไม่มีปัญหาจะขึ้นข้อความว่า Import Done.
เมื่อลองดูในฐานข้อมูลก็จะพบว่ามีข้อมูลที่เราต้องการอยู่ในฐานข้อมูลแล้ว
ตัวอย่าง Code
- $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
มันเปนงี้ทำไงดีครับ
ตอบลบFatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 1441845 bytes) in C:\AppServ\www\phpMyAdmin\sql.php on line 376