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

  • 相关阅读:
    POJ-1700 Crossing River
    C++操作符new-动态存储空间分配
    POJ-3978-Primes
    POJ-1316-Self Numbers
    浅谈二维数组在传参中的使用
    OneToMany与ManyToOne的属性
    jquery的学习
    struts2常用标签
    Struts2.xml中result type属性说明
    监听器Listener
  • 原文地址:https://www.cnblogs.com/hello-tl/p/7738113.html
Copyright © 2011-2022 走看看