亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MYSQL如何插入下一列ID

MYSQL如何插入下一列ID

PHP
侃侃爾雅 2023-08-19 16:40:30
我有下表:RowID | name | prev_row | next_row-------------------------------0  | test | NULL     | NULL1  | test | NULL     | NULL2  | test | NULL     | NULL3  | test | NULL     | NULL4  | test | NULL     | NULL5  | test | NULL     | NULL--$stmt = $pdo->prepare("INSERT INTO row (name, prev_row, next_row) VALUES (:name, :prevRow, :nextRow);foreach ($rows as $row) {   $stmt->bindParam(":name", $row->getName());   $stmt->bindParam(":prevRow", ????????????);   $stmt->bindParam(":nextRow", ????????????);   $stmt->execute();}如何填充上一行和下一行參數?前一行是 for 循環中當前行之前插入的行的 ID。下一行是將在 for 循環中當前行之后插入的行的 ID。我知道我可以對前一行執行此操作:$stmt = $pdo->prepare("INSERT INTO row (name, prev_row, next_row) VALUES (:name, :prevRow, :nextRow);foreach ($rows as $row) {   $stmt->bindParam(":name", $row->getName());   $stmt->bindParam(":prevRow", $pdo->lastInsertID());   $stmt->bindParam(":nextRow", ????????????);   $stmt->execute();}但我不知道如何獲得下一行,因為它尚未創建。
查看完整描述

1 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您無法獲取下一個 id,您可以做的是執行不帶 :nextRow (null 或其他臨時值)的 INSERT,存儲插入行的 id 并在下一個循環中運行插入新行并用此更新上一個行新行 ID 作為 nextRow。


像這樣的東西:


<?php


$stmt = $pdo->prepare("INSERT INTO row (name, prev_row, next_row) VALUES (:name, :prevRow, :nextRow");


$stmtUpdate = $pdo->prepare("UPDATE row SET next_row = :nextRow WHERE id = :id");


$previousId = null;

foreach ($rows as $row) {

   // insert current row without nextRow

   $stmt->bindParam(":name", $row->getName());

   $stmt->bindParam(":prevRow", $pdo->lastInsertID());

   $stmt->bindParam(":nextRow", null);

   $stmt->execute();


   if ($previousId) {

     // update previous row with this rows id as its nextRow

     $stmtUpdate->bindParam(":nextRow", $pdo->lastInsertId());

     $stmtUpdate->bindParam(":id", $previousId);

     $stmtUpdate->execute();

   }


   $previousId = $pdo->lastInsertID();

}

這也是有道理的,因為您插入的最后一行不會有nextRow


查看完整回答
反對 回復 2023-08-19
  • 1 回答
  • 0 關注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號