如果存在则更新,否则插入

Chr*_*rie 3 php sql

如果在这种情况下存在其他插入,则 UPDATE 的正确格式是什么 - 我已经设法分别进行更新和插入,但需要将它们一起使用?。

我想要的是 - 如果日期存在,那么它会更新为全天,如果它不存在,那么会插入一个包含新详细信息的新行。

$date = (isset($_POST['date']) ? $_POST['date'] : null);
$reservationType = (isset($_POST['reservation-type']) ? $_POST['reservation-type'] : null);

$connect = new mysqli($servername, $username, $password, $dbname);


// check connection 

if ($connect->connect_error) {
    die("connection failed: ". $connect->connect_error);
}

$sql = "SELECT * FROM reservations";
$result = $connect->query($sql);

if ($result -> num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        if ($date == $row['date_of_reservation']) {
           "UPDATE reservations SET reservationType = 'FULLDAY' WHERE   date_of_reservation='$date'";
    }
    else {
        "INSERT INTO reservations (date_of_reservation, reservationType) VALUES ('$date', '$reservationType')";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

rjd*_*own 5

手册

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;
Run Code Online (Sandbox Code Playgroud)

  • *♫ [c 用于 cookie,这对我来说已经足够了](http://www.youtube.com/watch?v=BovQyphS8kA) ♫* - 说真的,它代表“列”。@克里斯玛丽 (3认同)