php操作SQL

1、 数据库中的增删查改

1.1、查询

语句:select 什么内容from 表名 where 判断条件

查询可以返回一个结果集,是一个列表

查询在这张表里面的所有id列和name列

select id,name from mytable

带条件的查询

select * from mytable where id = 3

查询年龄小于20岁的

select * from mytable where age < 20

查询年龄小于20岁,性别为女生

and or not

select * from mytable where age < 20 and gender = 0

1.2、增加

语句:insert [into] 表名[(字段1, 字段2,...)] values(值1,值2)

-- 表名后没有指定字段,那么必须设置对应数量的值,并且主键不能重复

insert into mytable values('lili', 30, 0) -- 没有id的值,所以报错

-- 如果有标识列,一般可以给null值,系统会自动生成

insert into mytable values(null, 'lili', 30, 0)

-- 指定需要添加数据的字段

insert into mytable(name, age, gender) values('lili', 30, 0)

-- 对于值为null的值,可以不写

insert into mytable(name) values("ok")

-- 非空字段需要赋值,否则系统也不会自动为其生成默认值

insert into mytable(age,gender) values(40, 1) -- 虽然可以,但是不建议漏掉非空字段

1.3、修改

语句: update 表名 set 字段1 = 值1, 字段2 = 值2

update mytable set age = age + 1 -- 会把所有的都改变

-- 带条件的写法,只会改变第5条

update mytable set age = age + 10 where id = 5

-- 同样支持 or and not

-- 修改多个内容

update mytable set age = age + 1,gender = 1 where id = 5

1.4、删除

不要轻易删除内容!!!!

语法:delete [from]表名 where 条件 (from可以省略)

-- 删除的操作不能还原,要删除的话,就需要提前备份

delete from mytable where id = 8

-- 同时删除多个

delete from mytable where id in(4,5)

delete from mytable where id in(4,5)

小结

==> 查询是返回受影响的内容

==> 增加、删除和修改是返回受影响的行数

2、常见的函数说明

2.1、总条数 count

-- 查询可以满足条件的记录数

select count(*) from mytable

-- 选择符合条件的记录数

select count(id) from mytable

-- 如果当前空值,不会对null值进行计算

2.2、最大值、最小值 max min

得到当前的那个值

-- max 获取最大值 min 获取最小值

select max(age) from mytable

-- 如果是字符,按照字符的ascll码来排序

2.3、平均值 avg

-- 一般都是数值

select svg(age) from mytable

2.4、排序 order by

select * | 字段列表 form 表列表 where order by asc 升序 desc 降序

select * from mytable

-- 降序

select * from mytable order by id desc

-- 按照name排序 a-z

select * from mytable order by name

-- null值会排在前面

-- 实现按照性别,再按照年龄

select * from mytable order by gender,age

2.5、获取指定范围内的数据

limit 获取指定的前n条记录 只有一个参数

-- 前面3条数据

select * from mytable limit 3

-- 后面五条

-- 先做降序,然后再去筛选,并且一定要先排序,再获取,不然会报错

select * from mytable order by id desc limit 5

-- 中间范围的记录 n 偏移量从0开始, m 能够获取的记录数

select * from mytable limit 2,2

-- 第2种写法,和上面的一样

select * from mytable limit 4 offset 2

制作分页

int pageSize = 10;

int pagecount = 1;

select * from mytable pageSize 4 offset (pagecount - 1) * pageSize

2.6、多表查询

在数据中,防止重复存储数据,所以会把不同的数据放在不同的地方存储

-- 返回初始的数据,没有内部关联的数据

select * from student

-- 用户需要的是最终的结果

-- 1.0 采用from where的方式

select * from student,class where student.cid = class.classid

where后面的这个 = 表示判断

-- 简写

select studentId,studentName,age,gender,className from student,class where student.cid = class.classid

-- 2.0 join 和 inner join都是一样的 on和where的意思也是差不多的

select * from student inner join class on student.cid = class.classid

-- left join 如果对应不上的时候,自动让对应的值为空 right join 与之相反

select * from student left join class on student.cid = class.classid

left join 是左边的数据会全部显示出来 right join 右边的数据会全部显示出来

3. PHP建立数据库连接

3.1 建立与服务器的连接

mysqli_connect(设置主机,用户名,密码,想操作的数据库)

这个函数会自动打开连接

如果连接失败,返回false

如果连接成功就返回一个连接对象

// 1.0 设置响应头

header("Content-Type:text/html;chartset=utf-8");

// 2.0 创建数据库连接

$conn = mysqli_connect("localhost", "root", "root", "mybase");

// 3.0 设置编码

// mysqli_set_chartset($conn, "utf8");

mysqli_query($conn, "set name as utf-8"); // 设置编码格式为utf-8

if(!$conn) {

die("连接失败");

}

3.2 解决乱码问题

mysqli_set_chartset($conn, "utf8"); //设置数据库编码

header("Content-Type:text/html;chartset=utf-8"); PHP与浏览器编码一致的问题

3.3 PHP操作sql增加、修改和删除

执行sql语句 mysqli_query(连接对象, sql语句) 有返回值, 成功为true, 失败为false

// 1.0 新增数据 创建sql语句(删除,修改结合上边数据库的语句 类似的)

// 2.0 数据库中字符串必须写在单引号或者双引号中间

$sql = "insert into mytable value(null, '张三', 30, 1)";

$result = mysqli_query($conn, sql);

// 3.0 $result 返回类型为bool类型 ,成功为true ,失败为false

var_dump($result); // bool(true) | bool(false)

if($result) {

echo "新增成功";

} else {

echo "新增失败
";

// 输出具体的报错信息

echo mysqli_error($conn);

}

3.4 php查询

因为查询到的是结果集 所以会和增加 删除 修改语句不一样

// 1.0 设置响应头

header("Content-Type:text/html;chartset=utf-8");

// 2.0 创建数据库连接

$conn = mysqli_connect("localhost", "root", "root", "mybase");

// 3.0 设置编码

// mysqli_set_chartset($conn, "utf8");

mysqli_query($conn, "set name as utf-8"); // 设置编码格式为utf-8

if(!$conn) {

die("连接失败");

}

// 4.0 创建查询sql语句

$sql = "select * from mytable";

// 5.0 执行sql语句

$result = mysqli_query($conn, $sql);

var_dump($result); // 获取到大致信息,几行几列,但是并不是具体的数据

?>

mysqli_num_rows($result) 判断当前结果集中是否有数据

展示结果集中的内容:

mysqli_fetch_array() :提取数据生成一个数组.同时生成索引数组和关联数组两种形式

mysqli_fetch_assoc():提取数据生成一个数组:将数据生成关联数组

mysqli_fetch_row():提取数据生成一个数组,将数据生成为索引数组

都只会读取一行数据,但是在读取完毕之后,会将指针指向下一行

读取全部的数据

// 上面的函数都只会读取一行数据,但是在读取完毕之后,会将指针指向下一行

// 如果需要获取多行,则需要重复调用相同的方法,如果没有数据,则返回NULL

// !!!!而数据到底有多少,则未可以,所以循环的话并不知道何时停止,while循环就比较适合

while ($arr = mysqli_fetch_array($result, MYSQL_ASSOC);) {

$res[] = $arr;

}

print_r($res);

?>

最终查询代码(完整版)

// 设置响应头

header('content-type:text/html;charset=utf-8');

$conn = mysqli_connect('localhost','root','root','mytable');

// 判断是否连接成功 失败会返回false 成功呢会返回一大串东西

if (!$conn) {

die('连接失败');

}

// 成功后写SQL语句

// 增加语句

// $sql = "insert into people values(null,'jan','男','2019-1-1','222','12') ";

// 修改语句 修改多个的时候where左边逗号右边用or

// $sql = "update people set age=18,sex='男' where id = '1' or id='3'";

// 删除

// $sql = "delete from people where id = '4' ";

// 查询

$sql = "select * from people";

$result = mysqli_query($conn,$sql);

if (!$result) {

die ('查询失败');

} else if (mysqli_num_rows($result) == 0) {

die ('没有结果');

} else {

// 查询成功

while($arr = mysqli_fetch_assoc($result)) {

$res[] = $arr;

}

print_r($res);

}

?>

php取表中最大的id,php中的增删查改相关推荐

  1. python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 调试环境python3.6,调试python操作mongodb数据库,首先要在本地或服务器安装mongodb数据库.安装参考:http:// ...

  2. python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库.安装参考:http://blog ...

  3. python数据存储系列教程——python中redis数据库操作:连接、增删查改、多级路径

    全栈工程师开发手册 (作者:陈玓玏) python教程全解 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品 ...

  4. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  5. 表 62623266 的索引 ID 1 中找不到索引条目。指示的索引已损坏,或当前的更新计划有问题。。

    解决表 "62623266 的索引 ID 1 中找不到索引条目.指示的索引已损坏,或当前的更新计划有问题.请运行 DBCC CHECKDB 或 DBCC CHECKTABLE.如果该问题仍然 ...

  6. MySQL:带你掌握表的增删查改

    表的增删查改 Create 单行数据 + 全列插入 多行数据 + 指定列插入 插入否则更新 替换 Retrieve SELECT 列 WHERE 条件 结果排序 筛选分页结果 Update Delet ...

  7. python学习之flask sqlalchemy介绍和使用 表操作增删查改

    flask sqlalchemy介绍和使用 表操作增删查改 内容详细 1 sqlalchemy介绍和快速使用 1.1 介绍 # SQLAlchemy是一个基于Python实现的ORM框架# djang ...

  8. Django:数据库表的建立与增删查改(ForeignKey和ManytoMany)

    数据库表的创建: 1.Django工程项目建立,基础环境调试. 2.创建表 from django.db import models class Publisher(models.Model):    ...

  9. mysql表的增删查改

    mysql3 表的增删查改 增 创建数据表 单行插入 多行插入 指定列插入 替换 查 select列 全列查询 指定列查询 表达式中可以包含一个字段 给输出的结果重命名 去除重复结果 where条件 ...

最新文章

  1. Nginx(二) 配置与调试
  2. 深度丨Google告诉你为什么各大机构都在争相研究AI芯片
  3. Cash Shuffle的BCH在稳步测试中前进
  4. docker 报错 /usr/bin/docker-current: Error response from daemon: driver failed programming external
  5. Docker镜像的基本操作
  6. Oracle使用impdb/expdb数据泵导入/导出数据库
  7. spring ref historydesign philosophy
  8. 如何获取FragmentTabHost中指定标签页的Fragment
  9. python布尔类型运算_Python bool类型和比较运算符(入门必读)
  10. LINUX SHELL mkdir建立多级目录
  11. 爱加密:APP安全防护 靠技术实力说爱你
  12. 嵌入式Linux学习笔记(1)开篇
  13. 京东联盟高级API - 京东联盟商品类目查询接口
  14. my top visited webs
  15. 华退学博士王垠:离开是为了获得力量后再回来
  16. mysql经典sql语句大全_经典SQL语句大全(sql查询语句大全集锦)
  17. 【MAC】有道笔记登陆不了,刷新不出登陆
  18. 国外有python专业的大学_有哪些国外大学非常容易申请?
  19. 计算机系统结构专业学什么,江苏大学专业介绍:计算机系统结构
  20. 简单理解与实验生成对抗网络GAN

热门文章

  1. 牛客网多校第9场 E Music Game 【思维+数学期望】
  2. 在实际项目中,如何选择合适的机器学习模型?
  3. linux shell学习三
  4. mysql删除重复记录语句的方法
  5. 【SSH网上商城项目实战11】查询和删除商品功能的实现
  6. IIPP迷你项目(一)“Rock-paper-scissor-lizard-Spock”
  7. 【转】C# Socket编程笔记
  8. 'GO' 附近有语法错误问题,我真是无语~
  9. VS2015解决非Unicode编码包含中文字段无法编译的问题
  10. 关于Hive中case when不准使用子查询的解决方法