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
PHP:Mysql判断KEY是否存在 如果存在走修改 如果不存在走添加的更多相关文章
- mysql 判断表字段是否存在,然后修改
-- ---------------------------- -- 判断 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在则添加; 存在则修改字段类型 DELIMITER ...
- Mysql中Key与Index的区别
mysql的key和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的. 1 key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查 ...
- mysql判断表里面一个逗号分隔的字符串是否包含单个字符串、查询结果用逗号分隔
1.mysql判断表里面一个逗号分隔的字符串是否包含单个字符串 : FIND_IN_SET select * from tablename where FIND_IN_SET(传的参数,匹配字段) 例 ...
- MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的区别
参考:MySQL中KEY.PRIMARY KEY.UNIQUE KEY.INDEX 的区别 对于题目中提出的问题,可以拆分来一步步解决.在 MySQL 中 KEY 和 INDEX 是同义.那这个问题就 ...
- Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中
Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中 python 的基本用法请浏览:https://www.cnblogs.com/ibingshan/p/98564 ...
- 【Mysql】key 、primary key 、unique key 与index区别
参考:https://blog.csdn.net/nanamasuda/article/details/52543177 总的来说,primary key .unique key 这些key建立的同时 ...
- 待续--mysql中key 、primary key 、unique key 与index区别
mysql中key .primary key .unique key 与index区别
- SQL Server、Oracle和MySQL判断NULL的方法
SQL Server.Oracle和MySQL判断NULL的方法 本文讲述SQL Server.Oracle.MySQL查出值为NULL的替换. 在SQL Server Oracle MySQL当数据 ...
- MySql判断汉字、日期、数字的具体函数
几个平常用的mysql函数,MySql判断汉字.日期.数字的具体函数分享给大家,具体内容如下 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 ? 1 2 3 4 5 6 7 8 9 10 11 ...
随机推荐
- poj 1474 Video Surveillance 【半平面交】
半平面交求多边形的核,注意边是顺时针给出的 //卡精致死于是换(?)了一种求半平面交的方法-- #include<iostream> #include<cstdio> #inc ...
- mysql 安装命令
mysqld install MySQL --defaults-file="D:\worksoft\mysql-5.7.17-winx64\my-default.ini" D:\w ...
- #undef及其用法
简 介 在后面取消以前定义的宏定义 在此程序中,我们将取消在先前程序中对预处理器的定义. #include <stdio.h> int main( void ) { #define ...
- DBMS "无法作为数据库主体执行,因为主体“dbo”不存在、无法模拟这种..........”
解决方案: 新附加的数据库需要设置所有者才能建立数据库关系图.供参考的操作步骤如下: 选择“AdventureWorks2012LT”,右键,选择“属性”,选择“文件”页,点击“所有者”右侧按钮,点击 ...
- [ZPG TEST 118] 最大值【dp+离线】
题4 最大值(findmax) [题目描述] 找到一个数组的最大值的一种方法是从数组开头从前到后对数组进行扫描,令max=a[0](数组下表从0..N-1),如果a[i]>max,就更新max ...
- 51nod 1186 质数检测 V2
1186 质数检测 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 给出1个正整数N,检测N是否为质数.如果是,输出"Yes&quo ...
- vue watch监听对象及对应值的变化
data:{ a:1, b:{ value:1, type:1, } }, watch:{ a(val, oldVal){//普通的watch监听 console.log("a: " ...
- skeljs框架关键点使用
global 全局 style.css containers: 1400px;容器宽度 xlarge 超大屏(media: max-width:1680px) style-xlarge.cs ...
- Cannot load php5apache2_4.dll into server 问题的解决方法
解决方法,重新安装 VC9或 VC11 试试,或者全部安装VC9 VC11 注意:如果下载的 php5.5为32位版本, 那么安装的vc9或VC11 也必须是32位版本. 如果下 ...
- Objective-C Foundation 框架 Example :Looking for Files 查找文件
Objective-C Foundation 框架 Example :Looking for Files 查找文件 NSFileManager. The NSFileManager class ...