使用一个QUERY插入多行

时间:2014-11-27 16:19:09

标签: php mysql

我有一些问题需要从SELECT sql获取信息,然后将这种信息插入到我的数据库中。问题是现在我无法解决插入多行的问题。

我得到了这个,它只插入一个项目,如果一个类别有更多项目,那么一个项目也需要插入多少次

我现在将一行中的项目彼此相邻,但我想要彼此之间的那些

if($log1 = $log->fetch_object())
    {
while($loco = $log->fetch_object())
    {
$item .= "$loco->itemname";
    }
$logss = "INSERT INTO log_drops(`item`, mobname, game, log_id, log_name)VALUES('$item', '$mobname', '$game', '$id', '$name')";
if($result1 = $db->query($logss));
}

2 个答案:

答案 0 :(得分:0)

根据您获得的结果创建VALUES字符串。您需要根据您的要求进行一点修改。但是,下面的示例将为您提供如何执行此操作的建议:

$items = '';
while($loco = $log->fetch_object()){
    $items .= '('.$loco->itemname.',';
    $items .= // Some other variables those you want to insert...
    $items .= $loco->xyz.'),';
}
$new_data = rtrim($items, ',');
$clause = "INSERT INTO log_drops(`item`, mobname, game, log_id, log_name)
           VALUES $new_data";

然后,您只需要执行一次插入查询。

答案 1 :(得分:0)

尝试这种风格,我总是习惯于从数组中获取我的价值并创建sql

<?php
$values = '';  // store values to be inserted
$n=','; // string to manage  comma between chunk of values to be inserted
$numberOfValues=5; // values defind to be inserted
$count = 0;
$recordNum =mysqli_num_rows($log) - 1; //count number of records from 0
while($loco = $log->fetch_object()){
    if($count == $recordNum){ $n = ' '; }
    $values .= "('$loco->itemname','$loco->game','$loco->game','$loco->log_id','$loco->log_name') $n ";
    $count++;
}

$clause = "INSERT INTO log_drops(`item`, mobname, game, log_id, log_name)
           VALUES $values";
?>