有没有更优雅的方式来内爆数据以进行查询?

发布于 2024-11-26 13:03:46 字数 501 浏览 2 评论 0原文

我要问是因为这个 答案。

我的代码看起来

<?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 中执行此/函数?

I am going to ask because of this answer.

My code looks like

<?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;

is there more elegant way to do this/function in php?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

大海や 2024-12-03 13:03:46
foreach ( $lines AS $line )  
{  
  $query[] = "($line)";  
}  

echo  "INSERT INTO table VALUES " . implode(",",$query);

是如何通过内爆来做到这一点,但我认为 AlienWebguy 的更好

foreach ( $lines AS $line )  
{  
  $query[] = "($line)";  
}  

echo  "INSERT INTO table VALUES " . implode(",",$query);

is how to do it with implode but i think AlienWebguy's is better

简单 2024-12-03 13:03:46
foreach(file('file.txt') as $line){
    $query .= "('".$line."'),";
}
echo "INSERT INTO table VALUES " . rtrim($query,',');
foreach(file('file.txt') as $line){
    $query .= "('".$line."'),";
}
echo "INSERT INTO table VALUES " . rtrim($query,',');
梦萦几度 2024-12-03 13:03:46
$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);
$query = 'INSERT INTO table VALUES ';
$query .= "('" . implode("'), ('", $lines) . "')";

UPD:

For 2 fields it could look like (I suppose you use 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);
我家小可爱 2024-12-03 13:03:46

LOAD DATA INFILE 更适合此特定任务: http:// dev.mysql.com/doc/refman/5.1/en/load-data.html

LOAD DATA INFILE is better suited for this specific task: http://dev.mysql.com/doc/refman/5.1/en/load-data.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文