04_(终结版)通过App实现对数据库的增删改
设计思路:
用户注册登录:用户注册或登录(login数据表),成功后进入增删改查(words数据表)
注意:只有登录验证成功后才可以增删改查,否则提示未登录!
增:用户在App上add(单词、词义、音标)到数据库里,数据库返回插入结果
删:用户选定单词,发送delete指令,数据库执行指令,返回删除结果
改:用户在App上update单词数据,并返回更新后的结果
查:用户在App随意select数据库里面的数据
step_01 数据库创建数据表grd_one
id int auto-increment primary key
words varchar()
prons varchar()
meanings varchar()
step_02 编写App界面:(为了方便查看效果,将所有组件写在一个界面)
解释:
登录按钮:如果不登录将不能执行更删改查操作;
必须注册才能登录;
未登录标签将显示“未登录”。
注册按钮:注册需要用户名和密码;
用户数据存储在新浪云MySQL数据库;
用户密码md5加密存储;
如果用户名被注册,注册失败(提示用户名已存在);
注册成功需要输入用户名、设置的密码登录方可操作;
登录成功界面将显示“已登录”,并返回数据库分配的用户ID。
增(按钮):增加数据时,如果数据库已存在该数据,提示数据已存在,不执行增加操作;
增加成功后,会提示增加数据成功。
删(按钮):删除数据时,不判断数据库是否存在该数据,直接执行删除指令,并提示用户数据已删除。
改(按钮):修改数据时,如果数据库不存在该数据,提示数据不存在,不执行修改操作;
修改成功后,会提示用户修改数据成功。
查(按钮):查询数据时,如果数据库不存在该数据,提示数据不存在,不执行查询操作;
数据存在,查询到数据后,将单条数据转化为数组以Json格式输出,本地解析Json数据显示数据。
step_03 注册用户 用户名:aa 密码:11
01 未登录,点击增删改查时,提示未登录:
02 注册时如果用户已存在,提示用户已存在:
03 注册成功提示:
04 登录时密码错误提示:
05 登录成功提示:
数据库验证:
step_04 增 删 改 查
01 增加数据 (add):
继续增加重复数据,则失败:
数据库查看插入的数据:
*************************
后续删除、改变、查询数据时时若数据不存在也会一一提示,再次不在列举,只显示成功操作。
*************************
02 修改数据 (update):
数据库查看修改后的数据:
03:查询数据

04_删除数据

干完收工,回家吃饭!
附:Php脚本
<?php
$host = SAE_MYSQL_HOST_M;
$port = SAE_MYSQL_PORT;
$dbname = SAE_MYSQL_DB;
$user = SAE_MYSQL_USER;
$pass = SAE_MYSQL_PASS;
$conn = mysqli_connect($host, $user, $pass, $dbname, $port);
if (!$conn) {
die('Connect Error (' . mysqli_connect_errno() . ') ' //l检测数据库连接状态
. mysqli_connect_error());
}
$tip=$_POST['tag']; //获取客户端post标签
$word=$_POST['wd'];
switch ($tip) //判断客户端时增删改查哪一种操作
{
case "add": //如果是增操作
$sql = "SELECT * FROM `grd_one` where words='{$word}'";
$result=mysqli_query($conn,$sql);
$num = mysqli_num_rows($result);
if (!$num){
$pron=$_POST['pr'];
$mean=$_POST['mn'];
$sql="INSERT INTO `grd_one` (`id` ,`words`,`prons`,`meanings`) VALUES (NULL , '{$word}','{$pron}','{$mean}')";
mysqli_query($conn,$sql);
echo 'Add Success!';
}
else {
echo 'The Word ALREADY exists';
}
break;
case "delete": //如果是删操作
$sql = "DELETE FROM `grd_one` where words='{$word}'";
mysqli_query($conn,$sql);
echo 'The Word has been deleted';
break;
case "update": //如果是改操作
$sql = "SELECT * FROM `grd_one` where words='{$word}'";
$result=mysqli_query($conn,$sql);
$num = mysqli_num_rows($result);
if (!$num){
echo 'The Word NOT exists';
}
else {
$pron=$_POST['pr'];
$mean=$_POST['mn'];
$sql="UPDATE `grd_one` SET prons='{$pron}',meanings = '{$mean}' WHERE words='{$word}'";
mysqli_query($conn,$sql);
echo "Update Successfully!";
}
break;
case "select": //如果是查操作
$sql = "SELECT * FROM `grd_one` where words='{$word}'";
$result=mysqli_query($conn,$sql);
$num = mysqli_num_rows($result);
if (!$num){
echo 1;
}
else {
$jarr = array();
while ($rows=mysqli_fetch_array($result)){
$count=count($rows);
for($i=0;$i<$count;$i++){
unset($rows[$i]); //释放
}
array_push($jarr,$rows);
}
echo $str=json_encode($jarr); //Json格式输出
}
break;
}
?>
04_(终结版)通过App实现对数据库的增删改的更多相关文章
- ThinkPHP实现对数据库的增删改查
好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...
- 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法.先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...
- 9.5Django操作数据库的增删改查
2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...
- TP5.1:数据库的增删改查操作(基于面向对象操作)
我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...
- 通过jdbc连接MySql数据库的增删改查操作
一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- Android学习---数据库的增删改查(sqlite CRUD)
上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
随机推荐
- 谈nginx配置
近日看<许式伟的架构课>中一段关于系统分解的描述所有思考,略记于此. 原文片段如下: 系统设计,简单来说就是 "对系统进行分解" 的能力.这个阶段核心要干的事情,就是明 ...
- Matlab M文件变量检测与传递
M文件中变量的检测与传递 可变数量的输入输出变量(varargin,vararout): Matlab的输入输出变量数量可变,并具有以下特点: 可变输入输出变量必须在正常变量之后 varargin和v ...
- Visual Studio 2019 使用.Net Core 3.0 一
一.前言 早在很久之前微软便公布 .NET Core 3.0 将支持开发Winform应用程序等等新特性,现如今 .NET Core 3.0 预览版已经出来第八个预览版了,从 .NET Core 2. ...
- 使用jQuery开发tab选项卡插件(可以右键关闭多个标签)
在前一篇“使用jQuery开发tab选项卡插件”的基础上添加了tab标签右键关闭菜单功能,菜单主要包括:关闭当前标签.关闭左侧标签.关闭右侧标签.关闭其他.关闭全部. 一.插件效果 二.实现思路 为w ...
- Java 日期时间与unix时间戳之间转换
日期时间 <--> 时间戳 java.time 包提供的新的日期和时间API LocalDateTime: 本地日期时间类 ZoneId: 时区类 ZonedDateTime: 带时区 ...
- Office 365 的安装与激活
(1)Office 365的安装,本处使用的是Office Tool Plus. (2)等待安装完成 (3)重头戏激活 , 使用命令行方式 (不推荐) 以下内容,新建文本文件,然后保存为.bat,再以 ...
- 浅谈ES6中super关键字
作用: super 关键字用于访问父对象上的函数. 语法: super([arguments]); // 访问父对象上的构造函数 super.functionOnParent([arguments]) ...
- js造成内存泄漏的几种情况
1.介绍js的垃圾回收机制 js的垃圾回收机制就是为了防止内存泄漏的,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的 ...
- go语言实现限流器
本文:https://chai2010.cn/advanced-go-programming-book/ch5-web/ch5-06-ratelimit.html Ratelimit 服务流量限制 计 ...
- RedisCluster的rename机制失败报错,解决又是数据倾斜问题
需求说明:spring session中的用户session更新是更新key的名字,所以对于key的操作时需要用newkey 替换oldkey value值只允许存在一个,这里用到rename就很合适 ...