PHP / MYSQL从表中插入多行使用TRANSACTIONS

时间:2016-04-07 17:29:03

标签: php mysqli transactions

我必须将一行从一个表移到另一个表,具体取决于列值,这是一个数字。

$order_code = '8888';
$conn->autocommit(false);

$sqlTranInsert = "SELECT * FROM shop_inventory WHERE item_order_code ='$order_code'";

if(!$resultTranInsert = $conn->query($sqlTranInsert)){
    echo 'Error '.$conn->error;
    $conn->close();
    exit;
}

while($row = $resultTranInsert->fetch_assoc()){
    $inve_id = $row['inve_id'];
    $sqlTranInsertItems = "INSERT INTO shop_inventory_archive SELECT * FROM shop_inventory WHERE inve_id = '$inve_id'";
    if(!$resultTranInsertItems = $conn->query($sqlTranInsertItems)){
        echo 'Error '.$conn->error;
        $conn->close();
        exit;
    }
}

$conn->commit();
$conn->close();
echo $msg;
exit;

我的问题是这根本不起作用,我不确定WHILE循环,我确定存在问题。谢谢你的帮助。

问候。

1 个答案:

答案 0 :(得分:0)

我们可以将所有列从一个表复制到另一个表,即现有表:

INSERT INTO table2
SELECT * FROM table1;

或者我们只能将我们想要的列复制到另一个现有表中:

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;