我无法上传 Excel 文件并将数据导入数据库。我总是收到错误代码:
Notice: Undefined index: file in C:\xampp\htdocs\Shamcey\importProspect.php on line 27
Notice: Undefined index: file in C:\xampp\htdocs\Shamcey\importProspect.php on line 28 Invalid File:Please Upload CSV File
我尝试了很多方法来重命名代码中的文件标签,但也失败了。我尝试在谷歌上研究解决方案,但没有一个解决方案有效。请帮我。我知道强烈建议使用 PHPExcel,但我真的不知道如何开始使用 PHPExcel,因为我对 php 还很陌生。
这是我的 php 代码:
function doprospects(){
if(isset($_POST["Import"]))
{
//First we need to make a connection with the database
$host='localhost'; // Host Name.
$db_user= 'root'; //User Name
$db_password= '';
$db= 'csci311'; // Database Name.
$conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db) or die (mysql_error());
echo $filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0)
{
$file = fopen($filename, "r");
//$sql_data = "SELECT * FROM prod_list_1 ";
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
//print_r($emapData);
//exit();
$sql = "INSERT into prospects(sno,name,position,positiontype,organization,industry,address,teloff,telfax,telhp,email,consultant,qualification,certification,member,membertype,remarks,state,sourceofclient) values ('$emapData[0]','$emapData[1]',,'$emapData[2]',,'$emapData[3]',,'$emapData[4]',,'$emapData[5]',,'$emapData[6]',,'$emapData[7]',,'$emapData[8]',,'$emapData[9]',,'$emapData[10]',,'$emapData[11]',,'$emapData[12]',,'$emapData[13]',,'$emapData[14]',,'$emapData[15]',,'$emapData[16]',,'$emapData[17]','$emapData[18]')";
mysql_query($sql);
}
fclose($file);
echo 'CSV File has been successfully Imported';
header('Location: index.php');
}
else
echo 'Invalid File:Please Upload CSV File';
}
这是我的 Excel 文件的样子
是否可以只输入数据而不将表头插入数据库?
最佳答案
您需要使用以下方法获取列和行的索引
$maxCol= getHightstColumn()
并获取 $maxRow= HighestRow()
那么
我宁愿在 for 循环中使用 rangeToArray 将文件存储在数组中
for($row=1; $row<=maxRow;$row++)
$rowData =$objSheet->rangeToArray('A' . $row . ':' . $maxCol . $row, NULL,TRUE, FALSE)[0];
//从这里您可以使用第一行的索引,您可以从第 2 行开始。
最佳
关于php - 用php将excel(xlsx)导入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24128241/