簡體   English   中英

然后檢查特定的列,更新或創建新行 pdo

[英]check specific cols then, update or create a new row, pdo

在插入新行之前嘗試檢查特定的列值。 但是有點困惑 PDO 的ON DUPLICATE KEY UPDATE所以,這里是在下面插入 function。

public function insert_schedule($user_id, $status, $content, $date, $time, $remarks, $created_at){
    $sql = "INSERT INTO schedules (user_id, status, content, return_date, return_time, remarks, created_at) VALUES (?,?,?,?,?,?,?) 
    ON DUPLICATE KEY UPDATE user_id, created_at = VALUES(user_id, created_at)";
    $stmt = $this->connect()->prepare($sql);
    $stmt->execute([$user_id, $status, $content, $date, $time, $remarks, $created_at]); 
}   

我想在插入新行之前檢查created_atuser_id 如果created_at已經存在於相同的user_id上,則更新該行。 否則,插入一個新行。 如何修復上述 function。

將查詢更改為:

INSERT INTO schedules SET user_id=?, status=?, content=?, return_date=?, return_time=?, remarks=?, created_at=?
ON DUPLICATE KEY UPDATE status=?, content=?, return_date=?, return_time=?, remarks=?
$stmt->execute([
    $user_id, $status, $content, $date, $time, $remarks, $created_at,
    $status, $content, $date, $time, $remarks
]);
  • 重復鍵必須定義為索引。
  • 執行需要值作為重復鍵

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM