在重复键更新时插入select

时间:2016-05-20 07:04:41

标签: php mysql select insert on-duplicate-key

我尝试创建一个用户保存用户搜索的数据库。

我希望在此术语不存在时插入术语,并在存在时添加+1,但数据库上的所有其他特定字段都相同。

示例:

user1搜索playstation,价格为1 =插入数据库

user2在user1生成的同一行上搜索价格为1 = +1的PlayStation

user3搜索playstation,价格为1,条件为new =将新记录插入数据库

我写过这篇文章但是没有工作:

      <?php 
     $link = mysqli_connect("localhost", "root", "root", "keyword");

   // Check connection
    if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
    }


    // attempt insert query execution

     $sql = "INSERT INTO keyword (id, search, category, mn, mx, site, itmcond, free, sortorder, type, payp) VALUES ('".$_GET["id"]."', '".$_GET["search"]."', '".$_GET["category"]."', '".$_GET["mn"]."', '".$_GET["mx"]."', '".$_GET["site"]."', '".$_GET["itmcond"]."', '".$_GET["free"]."', '".$_GET["sortorder"]."', '".$_GET["type"]."', '".$_GET["payp"]."')";

    if(mysqli_query($link, $sql)){
        echo "Records added successfully.";

        } else{
           echo "ERROR: Could not able to execute $sql. " .          mysqli_error($link);

             }

         // close connection
           mysqli_close($link);
       ?>

任何人都可以帮助我理解在哪里使用INSERT INTO将搜索添加到数据库,SELECT用于查找以前插入的术语,以及ON DUPLICATE KEY UPDATE用于为同一搜索添加+1。

谢谢!

1 个答案:

答案 0 :(得分:0)

//service interface
public interface Hello {
    String sayHello(String name);
    String sayBonjour(String name);
}

//service implementation 
@Component
public class HelloImpl implements Hello {  

    public String sayHello(String name) {
       //start local transaction
       return "hello " + name; 
       //finish local transaction
    }
    public String sayBonjour(String name) {
       //start local transaction
       return "bonjour " + name; 
       //finish local transaction
    }
}

//client
@Component
public class Client {

   Hello client;
   public Client() {
      //start local transaction
      client.sayBonjour(client.sayHello("world"));
      //finish local transaction 
   }
  }