php数据库录入和输出,PHP数据库之CURD操作

前言

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

数据库的连接

首先

打开xampp apache服务器和 MYSQL database

76767e8b708e

image.png

打开localhost/phpmyadmin,创建一张数据表

76767e8b708e

image.png

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

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

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

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

$link = mysqli_connect(“localhost”,"root","","mydb");

?>

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

判断数据库的连接正常

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);

76767e8b708e

image.png

增删改查之”删“

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

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

delete from 表名 where

我们来尝试下

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "delete from menu where id=13";

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

mysqli_close($link);

?>

76767e8b708e

删除前

76767e8b708e

删除后

增删改查之”改“

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

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

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "update menu set price='288' where id=15";

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

mysqli_close($link);

?>

76767e8b708e

image.png

增删改查之”查“

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

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

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "select name,price from menu where id=15";

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

print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));//按关联数组输出所有结果集

mysqli_close($link);

?>

查询结果

76767e8b708e

image.png

带查询限制的查询语句

select 字段 from 表名 where 条件 limit size

limit 1表示只查询记录中的一条

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "select * from menu where price='288' limit 1";

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

print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));

mysqli_close($link);

?>

查询结果

76767e8b708e

image.png

select 字段 from 表名 where 条件 limit start,size

limit start,size 从start位置查询size条

76767e8b708e

image.png

排序

select 字段(*)from 表名 where 条件 order by 字段 desc|asc (降序、升序)

我们来看下效果

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "select * from menu order by id DESC";

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

print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));

mysqli_close($link);

?>

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

76767e8b708e

image.png

分组统计查询

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

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "select count(*) from menu";

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

print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));

mysqli_close($link);

?>

我们来看下效果

76767e8b708e

image.png

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

$link = mysqli_connect("localhost","root","","mydb");

mysqli_set_charset($link,"utf8");

$sql = "select count(*) as num from menu";

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

print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));

mysqli_close($link);

?>

76767e8b708e

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);

?>

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

76767e8b708e

image.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值