我正在尝试使用以下代码将通常大约 20,000 个数据的 csv 文件上传到 sql server 数据库中。
此代码很少成功上传,但通常我收到以下错误:
* *警告:fopen() [function.fopen]:第 37 行 C:\Inetpub\wwwroot\file.php 中的文件名不能为空
警告:fgetcsv() 期望参数 1 是资源,在第 39 行的 C:\Inetpub\wwwroot\file.php 中给出的布尔值
警告:fclose():提供的参数不是第 40 行 C:\Inetpub\wwwroot\file.php 中的有效流资源**
<?php
if(isset($_POST['SUBMIT']))
{
$filename =$_FILES['sel_file']['name'];
$checkextension = explode(".",$filename);
if($checkextension[1]) == "csv")
{
$filename1 = $_FILES['sel_file']['tmp_name'];
$handle=fopen($filename1,"r");
while($data=fgetcsv($handle,1000000)) { $records = count($data); }
fclose($handle);
if($records==15) {
$handle=fopen($filename1,"r");
while (($data = fgetcsv($handle, 1000000,",")) !== FALSE) {
$sqlquery = "INSERT into dataupload (date, field1, field2,
field3, field4, field5, field6, field7, field8, field9,
field10, field11, field12, field13, field14, field15)
values ('$data[0]','$data[1]', '$data[2]','$data[3]','$data[4]',
'$data[5]', '$data[6]', '$data[7]', '$data[8]', '$data[9]',
'$data[10]', '$data[11]', '$data[12]', '$data[13]', '$data[14]')";
mssql_query($sqlquery); }
fclose($handle);
echo "imported successfuly"; } else { echo "--sorry it is not csv file..."; }
} }