【发布时间】:2014-07-13 05:01:09
【问题描述】:
目前我有一个 PHP 程序,它可以从 Web URL 中获取文本数据并将其保存为数组。代码如下:
$handler = fopen('URL', 'r');
if ($handler){
while (!feof($handler)){
$line[] = fgets($handler);
}
fclose($handler);
}
这是数组的几行打印后的样子:
9,632,1,44,Xi1esF8,28446,26377421,DK,C,0,0,0,1,0
9,632,2,320,i am,34977,24706164,EvOsso,C,0,0,0,1,0
9,632,3,352,Darwins Immaculate Selection,17357,23463949,MONSTERS,D,0,0,0,1,0
每一行都是一个由 $line[0]、$line[1]、$line[2] 等组成的数组。
我想把它放到 MySQL 中,这样每个 ',' 之后的每条数据都是一个新列,每个新行都是 MySQL 中的一个新行。所以 MySQL DB 有 14 列和与文件中的数据一样多的行。
我不确定如何编写 php 代码以连接到 MySQL 数据库并根据 "," 分隔符和每个数组 ($line[0], $line[1], $line[2 ]) 是 MySQL 中的一个新行。
提前感谢您的帮助!
【问题讨论】:
-
您对哪一部分有困难?连接数据库,还是写入数据?
-
写入数据。我可以很好地连接,但是告诉它在每个“,”之后将每个数据项放在一个新行中的语法是什么,并且每个数组都是一个新行?所以数据库中有 14 列和尽可能多的行。
-
您需要查看
explode将文件拆分为行,然后将每行拆分为列-您也许可以使用str_getcsv()完成所有艰苦的工作php.net/manual/en/function.str-getcsv.php跨度> -
然后,看看在 PDO 中使用准备好的语句;您可以使用准备好的语句将一组值直接传递给数据库,它会为您正确转义。
-
所以我应该使用 $line 而不是使用 $line[] 因为我不能分解数组?