大家好我是php的新手,所以我需要一些帮助。
我有一些包含一些信息的.txt,让我们这样说:
970,3584,D53,20170102,OL7GU9,9607,1AT03U2,A,
970,3588,F7A,20170102,OL7GY6,9607,1AT03U2,A,
我希望将这些值中的每一个插入到我的数据库中(我已经有了连接)。
到目前为止,我的代码是:
$myfile = fopen("crawler.txt", "r") or die("Unable to open file!");
if ($myfile) {
$columns = explode(",", fread($myfile, filesize("crawler.txt")))
}
此时我有一个这样的数组:
array(8825) { [0]=> string(3) "970" [1]=> string(4) "3584" [2]=> string(3) "D53" [3]=> string(8)
"20170102" [4]=> string(6) "OL7GU9" ....and so goes
如何将数组中的每个元素插入数据库?
我目前的代码:
foreach ($columns as $key => $value) {
$var1= $columns[0];
$var2= $columns[1];
$var3= $columns[2];
$var4= $columns[3];
$var5= $columns[4];
$var6= $columns[5];
$var7= $columns[6];
}
答案 0 :(得分:1)
基本上你只需要构建插入查询并像这样执行它。我在这个例子中使用了PDO:
$myfile = fopen("crawler.txt", "r") or die("Unable to open file!");
if ($myfile)
{
while (($line = fgets($myfile)) !== false)
{
// remove the comma at the end of every line
$line = rtrim($line, ',');
// example with PDO
$sql = 'INSERT INTO table_name (column_name1, column_name2, ...) VALUES (:param1, :param2, ...)';
// build the parameter array
$elements = explode(',', $line);
// prepare the parameter array
$parameters = array();
for($i=0;$i<len($elements); $i++)
{
$parameters["param$i"] = $elements[$i];
}
$insertquery = $connection->prepare($sql);
$insertquery->execute($parameters);
}
fclose($myfile);
}
我们遍历文本文件中的每一行。每一行都有一个逗号(,)。我们需要删除它,因为如果我们不这样做,explode将返回另一个空数组元素。接下来,我们只需构建插入查询并将其传递给数组元素。