将多个结果插入数据库PHP


Insert multiple results into database PHP

这部分用于通过API收集数据。

foreach($result['List'] as $feedback)
{
    $date = date_create();
    $date_entered = $feedback['DateEntered'];
    $time = preg_replace('/[^0-9]/','',$date_entered);
    //$comment = $feedback['Text'];
    $ListingId = $feedback['ListingId'];
    $BuyNowPrice = $feedback['BuyNowPrice'];
    $max_bid = $feedback['MaximumBidAmount'];
    $SellerId = $feedback['SellerId'];
    echo '<div>' . "Seller ID: $SellerId" . " has sold one $ListingId for " . '$' . "$BuyNowPrice" . '</div>';
    echo "<div>Feedback created at " . $time . "</div>";
    echo '<br>';
}

这部分是我用来在检索结果后直接插入到结果中的代码。

            <?php
   $dbhost = 'localhost';
   $dbuser = 'root';
   $dbpass = 'password';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn )
   {
      die('Could not connect: ' . mysql_error());
   }
   $sql = 'INSERT INTO tmfeedback '.
      '(SellerId,ListingId,BuyNowPrice) '.
      'VALUES ('.$SellerId.', '.$ListingId.', '.$BuyNowPrice.'))';
   mysql_select_db('dctdb3');
   $retval = mysql_query( $sql, $conn );
   if(! $retval )
   {
      die('Could not enter data: ' . mysql_error());
   }
   echo "Entered data successfully'n";
   mysql_close($conn);

            ?>

只有一个数据被插入到数据库中,它是最后显示的数据。我想知道如何更改代码,以便同时插入所有数据而不重复?谢谢你的帮助。

将插入内容放入循环中。否则,变量只具有在循环的最后一次迭代中设置的最后一个值。

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('dctdb3');
foreach($result['List'] as $feedback) {
    $date = date_create();
    $date_entered = $feedback['DateEntered'];
    $time = preg_replace('/[^0-9]/','',$date_entered);
    //$comment = $feedback['Text'];
    $ListingId = $feedback['ListingId'];
    $BuyNowPrice = $feedback['BuyNowPrice'];
    $max_bid = $feedback['MaximumBidAmount'];
    $SellerId = $feedback['SellerId'];
    echo '<div>' . "Seller ID: $SellerId" . " has sold one $ListingId for " . '$' . "$BuyNowPrice" . '</div>';
    echo "<div>Feedback created at " . $time . "</div>";
    echo '<br>';
    $sql = 'INSERT INTO tmfeedback '.
        '(SellerId,ListingId,BuyNowPrice) '.
        'VALUES ('.$SellerId.', '.$ListingId.', '.$BuyNowPrice.'))';
    $retval = mysql_query($sql);
    if(! $retval ) {
        die('Could not enter data: ' . mysql_error());
    }
}
echo "Entered data successfully<br>";
mysql_close($conn);

确保第二个代码块在第一个代码块内(将第二个块放在右大括号上方)。然后,foreach循环的每次迭代(每个结果)都会发生这种情况,并为每个结果插入一条记录。

您无法将数组插入数据库,因此将查询放入循环中。这个线程可能对你有很大帮助。