Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将Excel导入SQL数据库_Php_Pdo_Import From Excel - Fatal编程技术网

使用php将Excel导入SQL数据库

使用php将Excel导入SQL数据库,php,pdo,import-from-excel,Php,Pdo,Import From Excel,我到处寻找这段代码,但大多数代码都是专用的,或者只是有错误,没有工作 我想使用php代码将Excel文件导入我的sql数据库。到目前为止,我已经尝试了超过5个代码和插件(在github中),但最后一个代码效果最好,但仍然不起作用 $file = "../uploads/".$newfilename; //echo $file; $file_open = fopen($file,"r"); while(($csv = fgetcsv($file_open, 1000, ";")) !== fals

我到处寻找这段代码,但大多数代码都是专用的,或者只是有错误,没有工作

我想使用php代码将Excel文件导入我的sql数据库。到目前为止,我已经尝试了超过5个代码和插件(在github中),但最后一个代码效果最好,但仍然不起作用

$file = "../uploads/".$newfilename;
//echo $file;
$file_open = fopen($file,"r");
while(($csv = fgetcsv($file_open, 1000, ";")) !== false)
{
    $data = array_map("utf8_encode", $csv);
    print_r($data);
    $name = $csv[0];
    $pro_name = $csv[0];
    $brand = $csv[0];
    $tell = $csv[0];
    try{
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $db->prepare("INSERT INTO companies 
            (company_name, pro_name, brand, tell)
            VALUES(:a1, :a2, :a3, :a4)");
        $stmt->bindparam(':a1',$name);
        $stmt->bindparam(':a2',$pro_name);
        $stmt->bindparam(':a3',$brand);
        $stmt->bindparam(':a4',$tell);
        $stmt->execute();
        echo 'done';
    }catch(PDOException $e){
        //echo "error";
    }
}
此代码的结果如下:

Array
(
    [0] => PK!ª÷X¤z[Content_Types].xml ¢( ÌTÉjÃ0½úF×+I¡'.Ç6ôklØÐLÒäï
    [1] => vJÈi ½ØØÒ¼eyѪ*£%4Î&¢wE6uÚØ<ӷΣժt±£áíÍ`ºöW[LDAä¤Ä´Jaì<X>É\¨ñgÈ¥Wé\å ûÝîL%°Ô¡C/©EIÑëoÌÑóæ^Må}iRE,T.­> é¸,3)h.*ÑPªÊØÃaDl<Ê Äv¤[W1W6°0ïØú   úä´«mÝ#
ÑXzW{«R~¹097Ï´mMÓ¢¸RÆîtáo.£l^½+©ý5À-uôÿû?ÒA¼s çïGÒÀ\Òº¼²Û
è%æBÐâmί.à'ö91ãà<rhß]dÔÕÏ@ÈÀ>4-ß#°=áA0B±ônÙdúðÿÿPK!µU0#õL_rels/.rels ¢( 
)
数组
(
[0]=>PK!ª÷X  z [内容类型].xml、(ÌTÉjÃ0 ½F×+I“。(
[1] =>vJÈi½ØØØØØØØØØØØظ,3)h.*PØaDl
  • 您使用的是
    fgetcsv
    ,因此假设给定的excel文件格式为CSV
  • “result”(实际上来自
    print\r($data);
    语句,因此它在任何方面都不是一个真正的结果)表明该文件是一个压缩的XML,可能是.xlsx格式
  • 从以上两点来看,您当前的“寻找他人编写的现有解决方案”方法(*)可能需要改进。获取适当的Excel库(例如),阅读并理解其文档,以便能够将其用于您的特定需求。最重要的是,尝试自己编写,不要复制您从wild web不了解的粘贴代码

    (*)我说的是这两句话:

    我到处寻找这段代码,但大多数代码都是专用的,或者只是有错误,没有一个有效

    到目前为止,我已经尝试了超过5个代码和插件(在github中),但最后一个代码效果最好,但仍然不起作用

    $file = "../uploads/".$newfilename;
    //echo $file;
    $file_open = fopen($file,"r");
    while(($csv = fgetcsv($file_open, 1000, ";")) !== false)
    {
        $data = array_map("utf8_encode", $csv);
        print_r($data);
        $name = $csv[0];
        $pro_name = $csv[0];
        $brand = $csv[0];
        $tell = $csv[0];
        try{
            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $stmt = $db->prepare("INSERT INTO companies 
                (company_name, pro_name, brand, tell)
                VALUES(:a1, :a2, :a3, :a4)");
            $stmt->bindparam(':a1',$name);
            $stmt->bindparam(':a2',$pro_name);
            $stmt->bindparam(':a3',$brand);
            $stmt->bindparam(':a4',$tell);
            $stmt->execute();
            echo 'done';
        }catch(PDOException $e){
            //echo "error";
        }
    }
    

    最后我找到了一个有完整文档和描述的网站。简单地说,解决方案是将excel(.xlsx)文件转换成XML(.XML)文件,然后用简单的代码导入。

    你是对的,但有时没有足够的时间学习和理解代码,所以我不得不将工作代码复制到我的项目中,以便及时完成它。相信我,这不会让项目“完成”。正如你已经经历过的,你只是被卡住了。如果你花时间学习库(我承认,如果你自己编写库,它可能不可行)相反,你将能够使用它按时完成你的项目。这是一个非常简单的例子,尽管模式在不同的情况下会有所不同,但流程保持不变。你共享的链接不起作用,请给我工作链接好吗?