修改插入以进行更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改插入以进行更新相关的知识,希望对你有一定的参考价值。

我想修改我的代码,而不是只在mysql表中插入一个新行,它可以检查是否有一个具有相同项目编号的行,并更新它。

php代码

    <?php
    $con=mysqli_connect("localhost","root","root","inventory");

    // Check connection
    if (mysqli_connect_errno($con))
      {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }



     $sql = "INSERT INTO `current stock` (ItemNumber, Stock)
               VALUES
             ('".$_POST['ItemNumber']."', '".$_POST['Stock']."' )";

    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }
     echo "1 record added";


     mysqli_close($con);
     ?>
答案

你可以使用ON DUPLICATE KEY UPDATE语法,

$sql = "
   INSERT INTO `current stock` (ItemNumber, Stock)
   VALUES ('$_POST[ItemNumber]', '$_POST[Stock]' )
   ON DUPLICATE KEY UPDATE
   Stock = '$_POST[Stock]'
";

在这种情况下,ItemNumber应该是主要/唯一密钥

以上是关于修改插入以进行更新的主要内容,如果未能解决你的问题,请参考以下文章

从片段向数据库中插入值时ListView不更新

[Asp.net mvc]实体更新异常:存储区更新插入或删除语句影响到了意外的行数。实体在加载后可能被修改或删除。

ForYouFragment 片段不更新

批量数据进行插入和修改

更新:C++ 指针片段

(错误)SQL 代码 -530,错误外键 PAY$ID$U 的插入或更新值无效