gpt4 book ai didi

php - SQL插入使用PHPExcel从excel读取的数据

转载 作者:行者123 更新时间:2023-11-29 00:39:35 26 4
gpt4 key购买 nike

我目前正在使用 php 读取 excel 并将这些记录存储在 mysql 中。我遇到了 PHPExcel,一组非常好的插件类,可以很容易地帮助实现它。我试过了搜索但没有与我的用例类似的东西。另外,不太擅长面向对象的 PHP,我没有时间做这件事。

    First Name  Last Name   Nationality Gender  Date of Birth   Time of Birth   Date/Time   PHP Coder   Sanity %Age

上面是我的示例 数据库列 和我的 Excel 工作表的 第一 行。我想在将行插入到数据库之前匹配行的列名。到目前为止,我的代码给了我一个二维数组,我在其中获取了列名和值。我想在插入之前检查列名的原因是,我的 excel 可以按列名的任意顺序排列。我在包中使用了 exampleReader01 和一些 SO 引用来实现这一点。

  $headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true);
$headingsArray = $headingsArray[1];
$r = -1;
$namedDataArray = array();
for ($row = 2; $row <= $highestRow; ++$row) {
$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true);
if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
++$r;
foreach($headingsArray as $columnKey => $columnHeading){
$namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
}
}
}

现在我需要一些帮助,如何将其插入右列。我的数组是这样的

Array
(
[0] => Array
(
[First Name] => Mark
[Last Name] => Baker
[Nationality] => British
[Gender] => M
[Date of Birth] => 19-Dec-60
[Time of Birth] => 1:30
[Date/Time] => 22269.0625
[PHP Coder] => 1
[Sanity %Age] => 32%
)

[1] => Array
(
[First Name] => Toni
[Last Name] => Baker
[Nationality] => British
[Gender] => F
[Date of Birth] => 24-Nov-50
[Time of Birth] => 20:00
[Date/Time] => 18591.83333
[PHP Coder] =>
[Sanity %Age] => 95%
)

[2] => Array
(
[First Name] => Rachel
[Last Name] => Baker
[Nationality] => British
[Gender] => F
[Date of Birth] => 7-Dec-82
[Time of Birth] => 0:15
[Date/Time] => 30292.01042
[PHP Coder] =>
[Sanity %Age] => 100%
)

)

希望我清楚。
感谢您的宝贵时间。

最佳答案

如果我可以假设您的 Excel 列标题名称永远不会改变,为什么不简单地使用映射数组呢?

$dbMapping = array(
'col1' => header1,
'col2' => header2,
..
'colN' => headerN
);

因此,当您准备好插入数据库时​​,您可以使用二维数组中已有的列标题名称遍历每一行,并将其传递到映射数组中,即 $dbMapping['col1'] ,这将得到你的标题名称,你就可以获取正确的行值。

 foreach ($rows as $row) {
insert into col1, col2, ... colN
values ($rows[$dbMapping['col1']], $rows[$dbMapping['col2']], ...
}

当然,使用参数化值对您最有利。

关于php - SQL插入使用PHPExcel从excel读取的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com