用于将批量产品从excel上传到数据库的PHP代码

时间:2014-09-12 13:28:33

标签: php mysql excel

我想将产品详细信息从excel(xls,xlsx)上传到我的数据库,我正在使用PHPExcel库。以下是我的代码。代码中没有错误,但仍显示查询失败,数据未存储在数据库中。可能是什么原因,请建议。如果我在哪里错了,请引导我。

http://angelron.5gbfree.com/sample.xls(链接到我的Excel表格)

这是我的代码:

<?php
error_reporting(E_ALL); 
ini_set('display_errors',1);

$host="localhost"; // Host
$username="root"; // Mysql username
$password="12345"; // Mysql password
$db_name="db_varietyhaat"; // DB name
$tbl_name="products"; // Table name

// Connect to server and select database.
$link=mysqli_connect("$host", "$username", "$password", "$db_name")or die("cannot connect");


//include the following 2 files
require_once 'PHPExcel/Classes/PHPExcel.php';
require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';

//Values
$path = "sample.xls"; //Excel File

//Reading Excel File

$objPHPExcel = PHPExcel_IOFactory::load($path);

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet){
     $worksheetTitle = $worksheet->getTitle();
     $highestRow = $worksheet->getHighestRow(); // e.g. 10 For all rows
     $highestColumn = $worksheet->getHighestColumn(); // e.g 'F'
     $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
}

//Calculationg Columns
$nrColumns = ord($highestColumn) - 64;

//Displaying Sheet Details

echo "File name: " . $path;
echo '<br>';
echo "Sheet name: " . $worksheetTitle;
echo '<br>';
echo "No. of Columns: " . $nrColumns;
echo '<br>';
echo "No. of Rows: " . $highestRow;
echo '<br><br>';

//Inserting datas into db
$i=1;
$j=0;
for ($row = 2; $row <= $highestRow; ++ $row) {
$val=array();
for ($col = 0; $col < $highestColumnIndex; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val[] = $cell->getValue();
}

// Insert data into mysql
$sql="INSERT INTO `products`(`price_type`, `product_by`, `name`, `category_id`, `sub_category_id`, `expected_delivery`, `product_color`, `stitching_id`, `regular_size`, `regular_price`, `stitching_price`, `additional_id`, `additional_price`, `tailoring`, `regular_blouse_size`, `regular_salwar_size`, `cotton_petticoat_size`, `satin_petticoat_size`, `supplier_id`, `fit_size_guide_id`, `price`, `disc_price`, `less_in`, `currency_id`, `description`, `stylist_notes`, `weight`, `weight_id`, `length`, `length_id`, `image`, `pop_image`, `image_alt`, `purchase_date`, `purchase_bill`, `purchase_cost`, `expense`, `cod`, `code`, `product_by_code`, `popular`, `meta_title`, `meta_keywords`, `meta_description`, `tags`, `quantity`, `ship_charge`, `visibility`, `new`, `add_date`, `modify_date`, `main_price`, `featured`)VALUES ('$val[0]', '$val[1]', '$val[2]', '$val[3]', '$val[4]', '$val[5]', '$val[6]', '$val[7]', '$val[8]', '$val[9]', '$val[10]', '$val[11]', '$val[12]', '$val[13]', '$val[14]', '$val[15]', '$val[16]', '$val[17]', '$val[18]', '$val[19]', '$val[20]', '$val[21]', '$val[22]', '$val[23]', '$val[24]', '$val[25]', '$val[26]', '$val[27]', '$val[28]', '$val[29]', '$val[30]', '$val[31]', '$val[32]', '$val[33]', '$val[34]', '$val[35]', '$val[36]', '$val[37]', '$val[38]', '$val[39]', '$val[40]', '$val[41]', '$val[42]', '$val[43]', '$val[44]', '$val[45]', '$val[46]', '$val[47]', '$val[48]', '$val[49]', '$val[50]', '$val[51]', '$val[52]')";    //eg. $val[0], $val[1] ....
$result=mysqli_query($link, $sql);

//Check data inserted or not
if($result)
{
echo "Row " . $row ." : Data successfully inserted. Data No." .$i .'<br>';
}
else
{
echo "Query Failed";
}

}

?>

0 个答案:

没有答案