我正在尝试上传 xlsx 文件。使用 php 和 mysql .. 但我在数据库中的一个值之后有一个额外的符号 .. 就像上传后的值是 ETI5465 它变成 ETI5465
if($_POST['action']=="addFile"){
$fname = $_FILES['sel_file']['name'];
$path_info=pathinfo($fname);
$ext=$path_info['extension'];
$chk_ext = explode(".",$fname);
if(strtolower($chk_ext[1]) == "xlsx")
{
require 'simplexlsx.class.php';
$filename = $_FILES['sel_file']['tmp_name'];
// $handle = fopen($filename, "r");
$xlsx = new SimpleXLSX($filename);
list($cols, $rows) = $xlsx->dimension();
foreach($xlsx->rows() as $k => $data) { // LOOP THROUGH EXCEL WORKSHEET
if($k >'7'){
if($_POST['upload']=="excel1" && $cols<>'10')
{
$newdate=date('m/d/Y H:i:s A',$xlsx->unixstamp($data[4]));
$sql = "INSERT INTO vehicle_fuel_expenses (`company_code_nr`, `cartao`, `placa`, `modelo`, `responsavel`, `data_hora`, `transacao`, `tipo`, `liberacao_Restricao`, `motorista`, `matricula`, `estabelecimento`, `cidade`, `quilometragem`, `horas`, `servico`,`valor`,`km_rodados`,`horas_trabalhadas`,`litros`,`km_litro`,`litros_Hora`,`valor_Litro`,`ia_1`,`ia_2`,`ia_3`,`ia_4`,`ia_5`) VALUES ('".$_SESSION['company']."','$data[0]','$data[1]','$data[2]','$data[3]','$newdate','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]',
'$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]')";
$inser=@mysql_query($sql) or die(mysql_error());
}
if($_POST['upload']=="excel2" && $cols=='3')
{
//$newdate=date('m/Y',$xlsx->unixstamp($data[4]));
$sql = "INSERT INTO vehicle_fuel_expenses_mensalidade1 (`company_code_nr`, `veículo`, `item_faturado`, `valor`) VALUES ('".$_SESSION['company']."','".addslashes($data[0])."','".addslashes($data[1])."','".addslashes($data[2])."')";
$inser=@mysql_query($sql) or die(mysql_error());
}
if($_POST['upload']=="excel3" && $cols=='10')
{
$sql = "INSERT INTO vehicle_toll_consumption_cost (`company_code_nr`, `placa`, `tag`, `prefixo`, `marca`, `categ`, `data`, `hora`, `rodovia`, `praca`,
`valor`) VALUES ('".$_SESSION['company']."','$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
$inser=@mysql_query($sql) or die(mysql_error());
}
}
}
if($inser=='1')
{
echo '<script>alert("Importado com sucesso");</script>';
}
else
{
echo '<script>alert("Please Select A Valid File");</script>';
}
最佳答案
问题是由于文件的编码和数据库表使用的字符集引起的。例如,如果数据库表使用的字符集是 utf8_general_ci 并且从中读取数据的文件在连接到数据库后立即以 UTF-8 编码(因为它可能是您的文件),您必须执行命令 SQL设置正确的字符集,在这种情况下:
SET CHARACTER SET utf8
关于php - 使用 php 将 xlsx 文件上传到 mysql 时出现一个额外的字符显示所有值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21756697/