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)本来打算前端 ...
随机推荐
- CF1278E Tests for problem D
不难发现为了逐步确定每个点于其相邻点的相交情况,那么我们只可能有两种逐步构造的方式:从根开始往下构造,以及从子树往根上构造.经过很久的尝试,我发现从根往下构造是一件很困难的事情,于是我们可以反过来考虑 ...
- 解决No artifacts
前言:maven管理项目时显示No artifacts 错误: 第一步:找到Artifacts 第二步:点击添加 第三步:点击exploded,然后点击应用即可 注意: 名字1和名字2一定要相同 最后 ...
- Jquery--1--选择器分类
基本选择器 $("#id") //ID选择器 $("div") //标签选择器 $(".classname ...
- WebGPU 中的缓冲映射机制
1. 什么是缓冲映射 就不给定义了,直接简单的说,映射(Mapping)后的某块显存,就能被 CPU 访问. 三大图形 API(D3D12.Vulkan.Metal)的 Buffer(指显存)映射后, ...
- Solution Set -「LOCAL」冲刺省选 Round XXIII
\(\mathscr{Summary}\) 有一说一,虽然我炸了,但这场锻炼心态的效果真的好.部分分聊胜于无,区分度一题制胜,可谓针对性强的好题. A 题,相对性签到题.这个建图确实巧妙,多见 ...
- Solution -「Gym 102956F」Find the XOR
\(\mathcal{Description}\) Link. 给定 \(n\) 个点 \(m\) 条边的连通无向图 \(G\),边有边权.其中 \(u,v\) 的距离 \(d(u,v)\) ...
- Solution -「CF 1491H」Yuezheng Ling and Dynamic Tree
\(\mathcal{Description}\) Link. 做题原因:题目名. 给定一个长度 \(n-1\) 的序列 \(\{a_2,a_3,\cdots,a_n\}\),其描述了一棵 \ ...
- Solution -「国家集训队」「洛谷 P4451」整数的 lqp 拆分
\(\mathcal{Description}\) Link. 求 \[\sum_{m>0\\a_{1..m}>0\\a_1+\cdots+a_m=n}\prod_{i=1}^mf ...
- Solution -「Tenka1 2019 D」Three Colors
\(\mathcal{Description}\) Link. 给定 \(\{a_n\}\),把每个元素划分入可重集 \(R,G,B\) 中的恰好一个,求满足 \(\sum R,\sum G, ...
- Java ClassLoader 学习笔记
参考 Java类加载器(ClassLoader)