|
|
|
Import ข้อมูล excel เข้าฐานข้อมูลครับ ใช้แล้วมันขึ้น Error น่ะครัย MSSQL |
|
|
|
|
|
|
|
คือผมลอง Import ข้อมูลจาก Excel ลงฐานข้อมูลอ่ะครับ แล้วมันขึ้น error แบบนี้ ไม่ทราบว่าเป็นเพราะอะไรคับ ผมเพิ่งทำครั้งแรก เลยมึนๆ
ขอคำแนะนำด้วยครับ ขอบคุณครับ
นี้คือ โค้ดน่ะครับ
Code (PHP)
<?php
/** PHPExcel */
require_once 'Classes/PHPExcel.php';
/** PHPExcel_IOFactory - Reader */
include 'Classes/PHPExcel/IOFactory.php';
$inputFileName = $_FILES["doc"]["name"];
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($inputFileName);
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true);
$headingsArray = $headingsArray[1];
$r = -1;
$namedDataArray = array();
for ($row = 2; $row <= $highestRow; ++$row) {
$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true);
if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
++$r;
foreach($headingsArray as $columnKey => $columnHeading) {
$namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
}
}
}
//echo '<pre>';
//var_dump($namedDataArray);
//echo '</pre><hr />';
$objConnect = mssql_connect("SFP-BK-DB","sa","sfpmis") or die ("Error Connect to Database");
$objDB = mssql_select_db("Vehiclemanagement_New");
$i = 0;
foreach ($namedDataArray as $result) {
$i++;
$strSQL = "INSERT INTO T_SynergyCard VALUES ('".$result["วันที่สรุปรายการ"]."',
'".$result["วันที่ทำรายการ"]."','".$result["เวลาที่ทำรายการ"]."','".$result["หมายเลขบัตร"]."',
'".$result["รหัสร้านค้า"]."','".$result["ชื่อสถานีบริการ"]."','".$result["รหัสสถานีบริการ"]."',
'".$result["ทะเบียนรถ"]."','".$result["เลขที่ใบกำกับภาษี"]."','".$result["ผลิตภัณฑ์"]."',
'".$result["ลิตร"]."','".$result["จำนวนเงิน"]."','".$result["เลขกิโลเมตร"]."',
'".$result["อัตราสิ้นเปลือง"]."','".$result["Cost Center"]."','".$result["แผนก"]."',
'".$result["ชื่อหน้าบัตร"]."','".$result["ปั๊ม"]."') ";
mssql_query($strSQL);
echo $strSQL;
echo "Row $i Inserted...<br>";
}
mssql_close($objConnect);
?>
Tag : PHP, Ms SQL Server 2008
|
ประวัติการแก้ไข 2015-06-30 09:33:45
|
|
|
|
|
Date :
2015-06-30 09:32:28 |
By :
nutzaaclub |
View :
785 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลี่ยน $result[ภาษาไทย] เป็น $result[0-xx] ดูรึยังครัย
|
|
|
|
|
Date :
2015-06-30 09:51:03 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงๆแล้วใช้ array key ภาษาไทย มันไม่ควรทำอยู่แล้วครับ แล้วก็ที่ error เยอะๆ น่าจะมาจาก special character ที่มันพยายาม insert แล้วไม่ผ่าน ต้อง clean input ด้วย mysql_real_escape_string ก่อนน่ะครับ
mysql_real_escape_string
|
|
|
|
|
Date :
2015-06-30 10:12:49 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|