|
|
|
PHP สอบถามเรื่อง Code Import Excel ---> MySql Database หน่อยครับ |
|
|
|
|
|
|
|
เนื่องจากผมลอง Copy code php จาก link: https://www.thaicreate.com/php/php-import-excel-to-database.html นี้แล้วลองใช้งานดู แล้วติด Error ครับ
ตัวอย่าง Code :
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP(COM) Excel.Application Tutorial</title>
</head>
<body>
<?
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
$OpenFile = "MyXls/MyCustomer.xls";
//*** Create Exce.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Open($strPath."/".$OpenFile);
//$xlBook = $xlApp->Workbooks->Open(realpath($OpenFile));
$xlSheet1 = $xlBook->Worksheets(1);
//*** Insert to MySQL Database ***//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
for($i=2;$i<=5;$i++){
If(trim($xlSheet1->Cells->Item($i,1)) != "")
{
$strSQL = "";
$strSQL .= "INSERT INTO customer2 ";
$strSQL .= "(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,1)."','".$xlSheet1->Cells->Item($i,2)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,3)."','".$xlSheet1->Cells->Item($i,4)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,5)."','".$xlSheet1->Cells->Item($i,6)."') ";
mysql_query($strSQL);
}
}
//*** Close MySQL ***//
@mysql_close($objConnect);
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
?>
Data Import/Inserted.
</body>
</html>
ซึ่งใน Excel file ผมสร้างข้อมูลไว้ 6 Record แต่พอรัน Code เสร็จข้อมูลจะเข้าไป 4 Record และ
ข้อมูลที่เข้าไปใน table ทุก field จะขึ้นว่า Object
พอรัน Code จะติด Error ครับ :
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Data Import/Inserted.
รบกวนสอบถามผู้ชี้แนะเพื่อความกระจ่างด้วยครับ ^-^
Tag : - - - -
|
|
|
|
|
|
Date :
2009-08-19 14:48:12 |
By :
akekawee |
View :
2224 |
Reply :
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันก็รันได้ปกติดีนะครับ Import เข้า Table ปกตินะครับ
|
|
|
|
|
Date :
2009-08-19 15:29:51 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลืมดูไปว่า CustomerID ใน Table ทุก Record มันซ้ำกันด้วย
หง่าา ... เอ๊ะ งงง
|
|
|
|
|
Date :
2009-08-19 15:45:52 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องไปตั้งค่าอะไรเพิ่มเติมหรือป่าวครับ
|
|
|
|
|
Date :
2009-08-19 15:48:29 |
By :
akekawee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมใช้ PHP Version 4.3.11RC1-dev
พอรัน Code จะติด Error ครับ :
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
Notice: Object to string conversion in c:\instantrails\www\importexcel\import.php on line 22
แล้วเข้าไปใน table 4 record และทุก field จะขึ้นว่า Object
แต่ถ้าแก้ไข codeจาก If(trim($xlSheet1->Cells->Item($i,1)) != "") เป็น If($xlSheet1->Cells->Item($i,1) != "") จะไม่ error ครับ และเข้าได้ครบ 6 record แต่ทุก field จะขึ้นว่า Object เหมือนเดิม
|
|
|
|
|
Date :
2009-08-19 15:58:40 |
By :
akekawee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วันนี้ผมเริ่มมั่วล่ะ สับสนๆ
ปัญหาที่ท่านว่ามาผมก็ไม่แน่ใจนะครับ
แต่เมื่อกี้ ผมรันใหม่ ก็ได้นะ ปกติดี
Code พี่วิน Work!! แล้วครับ
**** รอท่านอื่นมาเสริมอีกทีนะ (รีบเผ่นเลยเรา )
|
|
|
|
|
Date :
2009-08-19 16:12:35 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ไม่ Error แล้วครับ สงสัยจะเป็น Version ของ PHP ครับ ตอนนี้เปลี่ยนมาเป็น PHP5 ก็ใช้ได้เลยครับ
|
|
|
|
|
Date :
2009-08-20 09:20:57 |
By :
akekawee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
<html>
<head>
<title>ThaiCreate.Com PHP(COM) Excel.Application Tutorial</title>
</head>
<body>
<?
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
$OpenFile = "MyXls/MyCustomer.xls";
//*** Create Exce.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Open($strPath."/".$OpenFile);
//$xlBook = $xlApp->Workbooks->Open(realpath($OpenFile));
$xlSheet1 = $xlBook->Worksheets(1);
//*** Insert to MySQL Database ***//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
for($i=2;$i<=5;$i++){
If(trim($xlSheet1->Cells->Item($i,1)) != "")
{
$strSQL = "";
$strSQL .= "INSERT INTO customer2 ";
$strSQL .= "(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,1)."','".$xlSheet1->Cells->Item($i,2)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,3)."','".$xlSheet1->Cells->Item($i,4)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,5)."','".$xlSheet1->Cells->Item($i,6)."') ";
mysql_query($strSQL);
}
}
//*** Close MySQL ***//
@mysql_close($objConnect);
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
?>
Data Import/Inserted.
</body>
</html>
?>
ขอถามอีกนิดนึ่งครับ คือถ้าผมต้องการ Input ไฟล์ที่มาจาก Form โดยส่งค่าเป็นตัวแปร $_FILE['DATA']
ถ้าตาม Code ด้านบนผมต้องแก้ตรงไหนบ้างครับ ให้มันอ่านไฟล์มาจากตัวแปรที่ส่งมาจาก Form แทนครับ เพราะปัจจุบันมันเรียกผ่าน Path อยู่ครับ
ขอบคุณมากครับ
รบกวนด้วยนะครับ
|
|
|
|
|
Date :
2009-08-20 09:26:36 |
By :
akekawee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถามอีกนิดนึงนะครับ ถ้าข้อมูลที่เค้าจะ Import เป็น file excel เวลาจะ Save ให้เป็น CSV ในโปรแกรม Excel เลือกที่อันไหนเหรอครับ
มันมีทั้ง CSV (comma delimited) , CSV (macintosh) , CSV (MS-DOS)
|
|
|
|
|
Date :
2009-08-20 12:01:01 |
By :
akekawee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โทษนะค่ะ รบกวนช่วยอธิบายโค๊ดข้างบนให้หน่อยได้ป่าวค่ะ ขอแบบละเอียดเลนะค่ะ พอดีว่าจะเอามาทำโปรเจก แต่ยังไม่ค่อยเข้าใจอ่ะค่ะ
ขอบคุณล่วงหน้าค่ะ
|
|
|
|
|
Date :
2012-07-14 17:24:41 |
By :
หนูผี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูบทความนี้ครับ
Code (PHP)
$objConnect = mysql_connect("localhost","root","root") or die(mysql_error());
$objDB = mysql_select_db("mydatabase");
$i = 0;
foreach ($namedDataArray as $result) {
$i++;
$strSQL = "";
$strSQL .= "INSERT INTO customer ";
$strSQL .= "(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$result["CustomerID"]."','".$result["Name"]."' ";
$strSQL .= ",'".$result["Email"]."','".$result["CountryCode"]."' ";
$strSQL .= ",'".$result["Budget"]."','".$result["Used"]."') ";
mysql_query($strSQL) or die(mysql_error());
echo "Row $i Inserted...<br>";
}
Go to : PHPExcel กับ Reader การอ่านไฟล์ Excel (.xls,.xlsx) และการนำเข้าฐานข้อมูล MySQL
|
|
|
|
|
Date :
2012-07-14 21:01:27 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|