MySQL-DB-封装-简易版
<?php
class DB{ private $link; public function __construct($host,$user,$password,$dbname,$port)
{
$link = mysqli_connect($host,$user,$password,$dbname,$port);
if(!$link){
echo "数据库连接失败";
exit();
}
$this->link = $link;
} //增加
public function insert($table,$data){
$sql = "";
$sql.= "insert into `$table` ";
$sql.= "(".implode(",",array_keys($data)).")";
$sql.= " VALUES";
$sql.= "('".implode("','",$data)."')";
$res = mysqli_query($this->link,$sql);
if($res && mysqli_affected_rows($this->link)>0){
return mysqli_insert_id($this->link);
}else{
return false;
}
}
//获取所有
public function getAll($sql){
$obj = mysqli_query($this->link,$sql);
$data = mysqli_fetch_all($obj,1);
return $data;
} //删除
public function delete($table,$where){
$sql = "delete from `{$table}` where {$where}";
$res = mysqli_query($this->link,$sql);
if($res && mysqli_affected_rows($this->link)){
return mysqli_affected_rows($this->link);
}else{
return false;
}
}
//更新
public function update($table,$data,$where){
$sql = "update `$table` set";
foreach ($data as $k=>$v){
$sql .= "`{$k}` = '{$v}',";
}
$sql = rtrim($sql,',');
$sql.= $where;
$res = mysqli_query($this->link,$sql);
if($res && mysqli_affected_rows($this->link)){
return mysqli_affected_rows($this->link);
}else{
return false;
}
} //关闭数据库连接
public function __destruct()
{
mysqli_close($this->link);
} } $host = '127.0.0.1';
$user = 'root';
$password = 'root';
$dbname = '1903a';
$port = '3306'; $db = new DB($host,$user,$password,$dbname,$port); $name = $_POST['name'];
$sex = $_POST['sex'];
$age = $_POST['age']; if(empty($name)){
echo "姓名不能为空";
exit();
}
$name_reg = "/^[\x{4e00}-\x{9fa5}]{2,6}$/u";
if(!preg_match($name_reg,$name)){
echo "用户名格式不正确";
} //增加
$data = [
'name'=> 'zhangsan',
'age' => '18',
'sex' => 1
];
//$res = $db->insert('user',$data); //查询
//$sql = "select * from user";
//$data = $db->getAll($sql); //删除
//$id = 9;
//$where = "id=$id";
//$res = $db->delete('user',$where); //更新
//$data = [
// 'name'=> 'lisi',
// 'age' => 10,
// 'sex' => 2
//];
//$id = '10';
//$where = "where id=$id";
//$res = $db->update('user',$data,$where);
//var_dump($res);
?>
MySQL-DB-封装-简易版的更多相关文章
- mysql性能优化-简易版
mysql性能优化 sql语句优化 如何发现有问题的sql? 开启mysql慢查询 show variables like 'slow_query_log' set global slow_query ...
- 基于 Mysql 实现一个简易版搜索引擎
前言 前段时间,因为项目需求,需要根据关键词搜索聊天记录,这不就是一个搜索引擎的功能吗? 于是我第一时间想到的就是 ElasticSearch 分布式搜索引擎,但是由于一些原因,公司的服务器资源比较紧 ...
- Python模拟简易版淘宝客服机器人
对于用Python制作一个简易版的淘宝客服机器人,大概思路是:首先从数据库中用sql语句获取相关数据信息并将其封装成函数,然后定义机器问答的主体函数,对于问题的识别可以利用正则表达式来进行分析,结合现 ...
- 学生管理系统(SSM简易版)总结
之前用 Servlet + JSP 实现了一个简易版的学生管理系统,在学习了 SSM 框架之后,我们来对之前写过的项目重构一下! 技术准备 为了完成这个项目,需要掌握如下技术: Java 基础知识 前 ...
- 深入理解Mybatis(第一讲)——手写ORM框架(简易版Mybatis)
我们来自定义一个持久层框架,也就是Mybatis的简易版. 使用端的搭建 idea中新建maven工程IPersistence_test: 在resources目录下新建sqlMapConfig.xm ...
- 闭关修炼180天--手写持久层框架(mybatis简易版)
闭关修炼180天--手写持久层框架(mybatis简易版) 抛砖引玉 首先先看一段传统的JDBC编码的代码实现: //传统的JDBC实现 public static void main(String[ ...
- Java 语言实现简易版扫码登录
基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...
- .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
FileProvider构建了一个抽象文件系统,作为它的两个具体实现,PhysicalFileProvider和EmbeddedFileProvider则分别为我们构建了一个物理文件系统和程序集内嵌文 ...
- 简易版自定义BaseServlet
这几天在学Java Web,一直在思考Servlet重用的问题,就用java的反射机制实现自定义的简易版BaseServlet; 该方式有点像struts2 利用映射获取前端的参数.有兴趣的同学可以自 ...
- Android学习之路——简易版微信为例(三)
最近好久没有更新博文,一则是因为公司最近比较忙,另外自己在Android学习过程和简易版微信的开发过程中碰到了一些绊脚石,所以最近一直在学习充电中.下面来列举一下自己所走过的弯路: (1)本来打算前端 ...
随机推荐
- 样式操作案例5-改变box的大小和位置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 无法加载 mcrypt (外链,英语) 扩展,请检查您的 PHP 配置。
转载请注明来源:https://www.cnblogs.com/hookjc/ 需要安装libcrytp,在下面的地址下载libmarypt: ftp://mcrypt.hellug.gr/pub/c ...
- 学习jsp篇:jsp Session介绍
1.Session基本介绍 Session---会话,它是一个内置对象.会话打个比方说就是浏览网站:开始到结束,或者说购物从开始到结束. 2.Session机制 客户端在第一次请求服务端时,服务端会产 ...
- Ubuntu好用的文本编辑器-SciTE Text Editor
Ubuntu下除了gedit之外,还可以使用SciTE编辑器,非常方便,安装 sudo apt install scite 不过刚刚装好在中文环境下还是不能够用的,因为会有中文乱码,还有很多设置也不符 ...
- iOS多线程总览 --By 吴帮雷
在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面(新版iOS中, ...
- SpringBoot源码解读系列三——引导注解
我们再来看下SpringBoot应用的启动类: 查看代码 import org.springframework.boot.SpringApplication; import org.springfra ...
- Linux之shell变量
一.变量名的规范 定义形如:class_name='xiaohemiao' 使用形如:echo $class_name 1.变量名后面的等号左右不能有空格 2.命名只能使用英文字母,数字和下划线,首个 ...
- docker基础——1.原理解读
1. 相关内核知识 docker本质上是宿主机上的进程. 通过namespace实现资源隔离,通过cgroups实现资源限制,通过写时复制机制copy-on-write实现高效文件操作. 依赖kern ...
- 【CF632F】Magic Matrix(生成树 脑洞)
题目链接 大意 给定一个\(N\times N\)的矩阵,问是否满足以下三个条件: \(A_{i,i}=0\) \(A_{i,j}=A_{j,i}\) 对于任意的\(i,j,k\),满足\(A_{i, ...
- Spark算子 - groupBy
释义 根据RDD中的某个属性进行分组,分组后形式为(k, [(k, v1), (k, v2), ...]),即groupBy 后组内元素会保留key值 方法签名如下: def groupBy[K](f ...