因为this回答我会问。
我的代码看起来像
<?php
$lines = file('file.txt');
$count = count($lines);
$i = 0;
$query = "INSERT INTO table VALUES ";
foreach($lines as $line){
$i++;
if ($count == $i) {
$query .= "('".$line."')";
}
else{
$query .= "('".$line."'),";
}
}
echo $query;
在php中有更优雅的方法吗?
答案 0 :(得分:4)
foreach ( $lines AS $line )
{
$query[] = "($line)";
}
echo "INSERT INTO table VALUES " . implode(",",$query);
是如何用implode做的,但我认为AlienWebguy更好
答案 1 :(得分:3)
$query = 'INSERT INTO table VALUES ';
$query .= "('" . implode("'), ('", $lines) . "')";
<强> UPD 强>:
对于2个字段,它看起来像(我想你使用php5 +):
$query = 'INSERT INTO table VALUES ';
$lines = array(array(1,2), array(3,4));
$query .= "('" . implode("'), ('", array_map(function($i) { return "'" . implode("', '", $i) . "'"; }, $lines)) . "')";
var_dump($query);
答案 2 :(得分:3)
foreach(file('file.txt') as $line){
$query .= "('".$line."'),";
}
echo "INSERT INTO table VALUES " . rtrim($query,',');
答案 3 :(得分:1)
LOAD DATA INFILE更适合此特定任务:http://dev.mysql.com/doc/refman/5.1/en/load-data.html