【问题标题】:PHP/MYSQL INSERT multiple rows FROM a TABLE WHERE one criteria using TRANSACTIONSPHP/MYSQL 从一个表中插入多行,其中一个条件使用 TRANSACTIONS
【发布时间】:2016-04-07 17:29:02
【问题描述】:

我必须根据列值(数字)将几行从一个表移动到另一个表。

$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 循环,我确定存在问题。感谢您的帮助。

您好。

【问题讨论】:

  • while循环中的insert语句在哪里执行?你错过了 $conn->query 调用
  • 是的,我在粘贴代码时很糟糕。我更新了问题。
  • 在循环中插入后是否从 echo 行收到任何错误?
  • 否 :( 它转到 $msg ,即 = '已复制订单' ,这是一切正常的消息。

标签: php mysqli transactions


【解决方案1】:

我们可以将一个表中的所有列复制到另一个现有表中:

INSERT INTO table2
SELECT * FROM table1;

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

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

【讨论】:

  • 感谢您的帮助。我不需要将整个表或特定列粘贴到另一个表中,我需要将表 2 中的几行插入到表 1 中,具体取决于几行中相同的列值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多