[英]PHP Read File into Array
我需要从CSV文件中提取数据并将其插入到MySQL数据库中。
(请参见下面的示例文件)
到目前为止,我有一个包含整个文件的数组(使用PHP读取文件):
Array ([0] => 01 [1] => 12345678X [2] => Title [3] => 120.00
...
如何修改数组以为每个项目创建四个一组? 每个项目都是自己的数组?
例如:
array( array (01,ISBN,Name,Price),
array (01,ISBN,Name,Price)
);
另外,如何才能分别访问这些值并插入MySQL?
例如: $price = 1.25;
<-数组中
这是我到目前为止的内容:
$fp = @fopen($_FILES['filename']['tmp_name'], "r");
if ($fp) {
$arr = array();
while(!feof($fp)) {
$this_line = fgets($fp);
$line = explode("^",$this_line);
if($line[0] != "") {
array_push($arr,$line[0]);
}
$i++;
}
上面的代码返回一个大数组,每列一个元素。 我想要在一个大数组中每个数组包含四个元素的数组,这样我就可以分别访问每个“行”。
样本文件:
ID 01
Title This is the title
Price 120.00
ISBN xxxxxx
^
ID 02
Title This is the title
Price 20.00
ISBN xxxxxx
^
使用fgetcsv ,避免CSV解析问题。
它将以数组的形式逐行返回文件,这正是您要的。
然后,可以使用MySQLi的带有绑定参数的预处理语句插入行。
[编辑]是这样的:
$file = fopen('data.csv', 'r');
$stmt = $connection->prepare("INSERT blah blah blah VALUES(?, ?, ?)");
while (($row = fgetcsv($file, 1000, "\t")) !== FALSE) {
$stmt->bind_param('types string', $row[0], $row[1], etcetera);
$stmt->execute();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.