zoukankan      html  css  js  c++  java
  • PHP:Mysql判断KEY是否存在 如果存在走修改 如果不存在走添加

    文章来源:http://www.cnblogs.com/hello-tl/p/7738113.html

    0、PHP代码

    <?php
    
    /**
     * POST 传参
     *
     * 例子 添加修改 使用同一个地址 一条 sql 解决
     *
     * 做统计使用这个例子也是很可可以的
     */
    
    # PDO 链接数据库
    $dsn = 'mysql:host=192.168.1.101;port=3306;dbname=test';
    $PDO_test = new PDO($dsn, 'root', 'root', array(PDO::ATTR_PERSISTENT => false));
    # 字符集
    $PDO_test->query('set names utf8;');
    
    # ON DUPLICATE KEY 判断 KEY 是否存在如果存在就修改 如果不存在就添加
    $tmp = $PDO_test->prepare("
        insert into test
        (id,fieldOne,fieldTwo,fieldThree)values(:id,:fieldOne,:fieldTwo,:fieldThree)
        ON DUPLICATE KEY UPDATE fieldOne = :fieldOne,fieldTwo = :fieldTwo,fieldThree = :fieldThree
    ");
    
    # 执行
    $ret = $tmp->execute(array(
        # 如果传入 ID 已存在就修改数据  ?  传入的 ID 不存在或者没传入 ID 他都是添加
        ':id' => !empty($_POST['id']) && isset($_POST['id']) ? $_POST['id'] : NULL,
        # 一下都是做判空处理
        ':fieldOne' => !empty($_POST['fieldOne']) && isset($_POST['fieldOne']) ? $_POST['fieldOne'] : NULL,
        ':fieldTwo' => !empty($_POST['fieldTwo']) && isset($_POST['fieldTwo']) ? $_POST['fieldTwo'] : NULL,
        ':fieldThree' => !empty($_POST['fieldThree']) && isset($_POST['fieldThree']) ? $_POST['fieldThree'] : NULL
    ));
    
    if($ret){
        echo json_encode(array('massage'=>'操作成功','code'=>'200'));
    }else{
        echo json_encode(array('massage'=>'操作失败','code'=>'400'));
    }

    1、Mysql语句

    SET NAMES utf8;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    --  Table structure for `test`
    -- ----------------------------
    DROP TABLE IF EXISTS `test`;
    CREATE TABLE `test` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `fieldOne` varchar(255) DEFAULT NULL,
      `fieldTwo` varchar(255) DEFAULT NULL,
      `fieldThree` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=gbk;
    
    SET FOREIGN_KEY_CHECKS = 1;
    

    2、测试添加数据

      (1)使用 postMan 添加

         

      (2) 添加成功

          

    3、测试修改数据

      (1)修改时添加上ID

        

       (2)修改数据成功

        

    文章来源:http://www.cnblogs.com/hello-tl/p/7738113.html

  • 相关阅读:
    Linq查询操作之排序操作
    记一次docker机器无法访问本身的端口的错误2020-06-17
    prometheus监控docker的状态2020-06-17
    Docker RabbitMQ 重新启动时遇到错误
    Docker-Compose的地址与公司网络冲突
    MongDB自动运行脚本
    RabbitMQ内存泄露问题
    离线安装K3S Server(v1.17.4+k3s1)
    kubernetes yaml文件学习
    Docker Desktop启动Kubernetes
  • 原文地址:https://www.cnblogs.com/hello-tl/p/7738113.html
Copyright © 2011-2022 走看看