使用php将Excel导入SQL数据库
我到处寻找这段代码,但大多数代码都是专用的,或者只是有错误,没有工作 我想使用php代码将Excel文件导入我的sql数据库。到目前为止,我已经尝试了超过5个代码和插件(在github中),但最后一个代码效果最好,但仍然不起作用使用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
$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)文件,然后用简单的代码导入。
你是对的,但有时没有足够的时间学习和理解代码,所以我不得不将工作代码复制到我的项目中,以便及时完成它。相信我,这不会让项目“完成”。正如你已经经历过的,你只是被卡住了。如果你花时间学习库(我承认,如果你自己编写库,它可能不可行)相反,你将能够使用它按时完成你的项目。这是一个非常简单的例子,尽管模式在不同的情况下会有所不同,但流程保持不变。你共享的链接不起作用,请给我工作链接好吗?