php - 使用 php 将 xlsx 文件上传到 mysql 时出现一个额外的字符显示所有值的问题

标签 php mysql

我正在尝试上传 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/

相关文章:

java - 软件首次运行时如何从java代码创建MySQL程序(设置数据库程序))

php mysql 数据库获取总价

php - 在具有 protected 变量的作业中找不到类

php - 使用 PHP session 并使用 PDO 选择 bool?

javascript - 无法在 codeigniter 中加载 css 和 javascript

php - 创建具有随机值 PHP 的关联数组

php - Mysql 根据上次运行选择记录

php - SQLSTATE[HY000] [1045] 用户 mimi_oboss 访问被拒绝

mysql - 计算列上的内连接

java - 如何在hibernate中使用条件sql查询