PHP数据库之CURD操作

前言

PHP作为一门服务端的脚本语言,既可以接受来自浏览器端的页面请求,也可以将页面的请求数据发送往数据库中储存起来,让页面不在静态,处于动态可以产生交互行为的状态,所以今天我们来认识下有关于数据库的一些东西。

数据库的连接

首先

  • 打开xampp apache服务器和 MYSQL database


    PHP数据库之CURD操作_第1张图片
    image.png
  • 打开localhost/phpmyadmin,创建一张数据表


    PHP数据库之CURD操作_第2张图片
    image.png

    根据关系数据库第二范式,每个表需要设置一个主键,在这里一般需要将id设为主键,主键是一个表中的约束。这个约束,一张表只能有一个,一般作为ID使用,这个约束一般给别人外键引用。这个约束的功能就是,不可重复,保证了唯一性,正是这种特性,使得大多数人都把他作为表中ID的字段使用。同时为了提高了SQL Server系统的性能,我们可以设置索引,加快数据的查询速度与减少系统的响应时间 ,在这里我们将id设为索引。

完成这些操作我们可以在编辑器上编写我们的代码连接服务器啦!!!

PHP连接数据库的方法通过 $link=mysqli_connect("数据库服务器地址","数据库登录用户","数据库登录密码","数据库名称")

在这里数据库服务器地址默认是localhost:端口号;数据库登录用户默认拥有服务器进程的用户的名称,数据库登录密码默认值是”“。


写好后我们还要判断下我们是否连接上了我们的数据库,不怕一万,就怕万一埋。

判断数据库的连接正常

if(mysqli_connect_errno($link)){
    echo "错误号:".mysqli_connect_errno($link);
    echo "
错误描述:".mysqli_connect_error($link); echo "
错误描述:网站错误请联系管理员"; exit; }

在这里加入mysqli_connect_errno判断语句,当没有连接上数据库的时候,我们就输出人性化提示报错,然后就将程序结束。

我们介绍的CURD操作说白了,就是增 删 改 查,create! update !read !delete!

增删改查之”增“

确定我们的数据库连接正常后,我们就开始我们增删改查的第一步,增!!

一张空表啥都没有,所以需要我们录入数据将其补满也方便之后的前后台交互查询调用。我们在这里需要使用以下语句

 1.$sql= insert into 表名(表的字段1,表的字段2)values(字段1的值,字段2的值) ;
  2.$sql= insert into 表名 表的字段一=‘字段一的值’,表的字段二=‘字段二的值’;

然后我们需要执行查询语句mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。

  1.mysqli_query($link,$sql);

然后执行关闭数据库方法,关闭数据库

   mysqli_close($link);

我们来试着往数据库里插入一个数据

 $link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");//进行编码,防止中文出现乱码
$sql = "insert into menu set name='叉烧包',price=20";
$result=mysqli_query($link,$sql);
mysqli_close($link);
image.png

增删改查之”删“

当我们的数据录入错误的时候我们当然就要把它删去,保持数据的准确性

这里我们需要使用下列语句,这里需要借助索引减少搜查范围

delete from 表名 where

我们来尝试下


删除前

删除后

增删改查之”改“

  update 表名 set 字段1='值',字段2='值' where 条件

同样我们来试试将叉烧包的价格改到288


image.png

增删改查之”查“

这应该是数据库里面最麻烦的部分,查询数据,各种姿势查询。

select 字段1,字段2... from 表名 where 条件


查询结果

image.png

带查询限制的查询语句

select 字段 from 表名 where 条件 limit size
limit 1表示只查询记录中的一条

  

查询结果

image.png

select 字段 from 表名 where 条件 limit start,size
limit start,size 从start位置查询size条

image.png

排序

select 字段(*)from 表名 where 条件 order by 字段 desc|asc (降序、升序)
我们来看下效果


我们可以看到表里的数据按id降序排序


image.png

分组统计查询

select count(*) from 表名 可以获得表里所有行数

?>
我们来看下效果


image.png

select count(*) as num from 表名 将count结果作为一个字段名检索

  
image.png

我们还可以通过分组 ground by 字段名 根据某个字段进行分组查询
group by + 多字段列表:

表示根据后面的字段来分组,如果只有1个字段,那只是根据这个字段的值来进行一次分组就可以了;若后面有多个字段,那表示根据多字段的值来进行层次分组,分组层次从左到右,即先按第1个字段分组,然后在第1个字段值相同的记录中,再根据第2个字段的值进行分组;接着第2个字段值相同的记录中,再根据第3个字段的值进行分组......依次类推。

这样分组后,显然每条记录(field1,field2,...)的数据都是唯一 。

注意:
1.where条件在group by前面
2.select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面!
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select * from student where city='上海' group by city";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));
mysqli_close($link);
?>

我们可以看到根据城市我们将城市为上海的成功分为一组


image.png

数据库博大精深,待我们慢慢道来,且听下回分解

你可能感兴趣的:(PHP数据库之CURD操作)