mysql insert语句在while语句中只添加1条记录

Jul*_*eto 0 php mysql mysqli mysql-insert-id mysqli-multi-query

我有这个代码(参见下文)

$sql = "SELECT * FROM records";
$result = mysqli_query($this->db,$sql);

while($row = mysqli_fetch_assoc($result)){
    $itemid = $row['id'];
    $itemname = $row['itemname'];
    $itemdesc = $row['itemdesc'];
    $brand = $row['brand'];
    $serialno = $row['serialno'];
    $nostock = $row['nostock'];
    $price = $row['price'];
    $onsale = $row['onsale'];
    $poster = $row['poster'];
    $thedate = $row['thedate'];

    $sql = "INSERT INTO backupp SET id='$itemid', itemname='$itemname', itemdesc='$itemdesc', brand='$brand', serialno='$serialno', nostock='$nostock', price='$price', onsale='$onsale', poster='$poster', thedate='$thedate'";
    $result = mysqli_query($this->db,$sql) or die(mysqli_error($this->db));
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码中可以看出,它将首先从名为"records"的db表中提取所有数据,然后将每一行放入相应的变量中,然后插入存储的数据(那些已从db表名中提取的数据)将"并存储在那里的相应变量"记录到名为"backupp"的db表中.现在,问题是,它只添加一条备份记录(首先被拉出的记录),据说它应该将所有从db表命名记录中提取的记录添加到db table named backup.为什么??任何建议,建议,线索和想法将不胜感激.谢谢!

PS:它像导出和导入到具有相同结构的其他表但我有我自己的理由为什么我想这样做并假设我已经成功连接到一个名为"库存"的数据库($ this-> db)并且有db表名称,例如"records"和"backupp"具有相同的结构.

Dav*_*nta 6

您可以通过这种方式轻松备份相同的表: INSERT INTO backupp SELECT * FROM records

  • 您也可以为列命名..`INSERT INTO backupp(itemname,itemdesc)SELECT itemname,itemdesc FROM records` ..当然,每个表中的名称可以不同. (2认同)