首页 > 数据库技术 > 详细

PHP系列(四):PHP连接数据库

时间:2020-02-24 13:16:43      阅读:61      评论:0      收藏:0      [点我收藏+]

0X01数据库基础

这里以MySQL数据库为例。

1、数据库基本操作

登录数据库

mysql -u用户名 -p

创建数据库

create database 库名;

查看建库语句

show create database 库名;

查看所有数据库

show databases;

删除数据库

drop database 库名;

使用数据库

如果需要在一个数据库中建立数据表,需要先使用use进入指定数据库。

use 库名;

2、数据表基本操作

查看数据库中数据表

show tables;

创建数据表

create table 表名(id int,name varchar(32),password varchar(32));

    //id,name,password是字段名;int,varchar是字段值的类型。
/*************数据类型说明**************/

整形                所占字节       取值范围   
tinyint             1字节         -128~127
smallint            2字节         -32768~32767
mediumint           3字节         -8388608~8388607
int                 4字节         -2147483648~2147483647
bigint              8字节         +-9.22*10的18次方

浮点型
float(m,d)          4字节         单精度浮点型,m总个数,d小数位
double(m,d)         8字节         双精度浮点型,m总个数,d小数位
decimal(m,d)                      decimal是存储为字符串的浮点数

字符型
char                0~255字节     定长字符串
varchar             0~655355字节  变长字符串

时间类型
date                4字节         日期,格式:2020-02-02

auto_increment      自动增加,只用于整形,可以设置起始值,默认为1
常与后面primary key一起使用
创建表时在整形字段后面加上auto_increment=其实值 primary key

//字段设置为自增:;
alter table 表名 modify 字段名 int auto_increment primary key;

查看建表语句

show creata table 表名;

查看表结构

desc 表名;

修改表名

alter table 表名 rename 修改后的表名;

删除表

drop table 表名;

3、表字段基本操作

增加表字段

alter table 表名 add 字段名 字段类型;

//添加字段的顺序

alter table 表名 add 字段名 字段类型 first;      //第一个字段

alter table 表名 add 字段名 字段类型 after 已有字段名         //在某个字段后插入

修改表字段

alter table 表名 change 字段名 修改后字段名 字段类型;

修改表字段值

alter table 表名 modify 字段名 修改后的值;

删除表字段

alter table 表名 drop 字段名;

4、表数据基本操作

增加数据

方法一:
insert into 表名 values(1,"admin","password","中国");

方法二:
注意:值要和前面的字段互相对应
insert into 表名(id,name,password,address) values(2,"king","root","美国");

方法三:
同时添加多条数据:
insert into 表名(name,age,sex,address) values("成龙",68,"男",“中国",),("乔丹",45,"男",”美国",),("刘亦菲",35,"女",”中国",);

删除数据

delete from 表名 where name="成龙";

修改数据

update 表名 set age=70 where name="成龙";

修改多个值:
update 表名 set age=75,password="test",sex="女" where name="成龙";

查询数据

查询表中所有数据:
select * from 表名;

查询指定数据:
select * from 表名 where name="成龙";

查询指定字段:
select name,age,address from 表名;

查询指定字段指定数据:
select id,name,sex from 表名 where id>3;

查询指定区间数据:
select * from 表名 where age between 40 and 60;

其他条件:

between 值 and 值         指定数据区间

or                      或

!=                      不等于

<>值                     不包含(等同于"!=")

in<值>                   包含

like ‘%龙’               模糊查询

order by 字段名            升序排列

order by 字段名 desc       降序排列

limit                   指定读取哪几行数据(可用于分页)

多表查询

【内联查询】
select 表1.字段 [as 别名],表n.字段 from 表1 inner join 表2 on 条件;

说明:以上方式的inner关键字换成cross同样可以,也可以省略。

【左连接】以左表为基准
select 表1.字段 [as 别名],表n.字段 from 表1 left join 表n on 条件;

【右连接】以右表为基准
select 表1.字段 [as 别名],表n.字段 from 表1 right join 表n on 条件;

【嵌套查询】(查询速度慢,不推荐)
select 字段名 from 表 where 字段 in(select 字段名 from 表);

5、索引

主键索引

alter table king add primary key(id);

普通索引

alter table king add index(age);

唯一索引

alter table king add unique(password);

全文索引

alter table king add fulltext(address);

0X07 PHP链接数据库

1、链接数据库

$link = mysqli_connect('localhost','root','password');

2、判断数据库是否链接成功

if (!$link)
{
    exit('数据库链接失败');
}

3、设置字符集

mysqli_set_charset($link,'utf8');       //注意这里不带“-”

4、选择数据库

mysqli_select_db($link,'mysql');

5、准备SQL语句

$sql = "select * from user";

6、发送SQL语句

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

7、处理结果集

$result = mysqli_fetch_assoc($res);

8、关闭数据库(释放资源)

mysqli_close($link);

9、其他数据库槽做

mysqli_fetch_assoc($result)     //从结果集中取得一行作为关联数组
mysqli_fetch_row($result)       //返回一个索引数组
mysqli_fetch_array($result)     //返回一个有索引又有关联的数组
mysqli_num_rows($result)        //返回查询时候的结果集的总条数
mysqli_affected_rows($link)     //返回你修改、删除、添加的时候受影响的行数
mysqli_insert_id($link)         //返回你插入的当前数据的自增id

数据库连接示例

<?php

$link=mysqli_connect('127.0.0.1','root','root');

if(!$link)
{
    exit('数据库链接失败!');
}

mysqli_set_charset($link,'utf8');

mysqli_select_db($link,king);

$sql = "select * from info";

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

$result = mysqli_fetch_assoc($send);

var_dump($result);

mysqli_close($link);

?>

PHP数据库连接实战

1、数据分页

  1. 先获取当前所有数据的条数,将获得的结果通过函数赋值给变量;
  2. 定义一个变量,确定每页需要显示多少条数据;
  3. 计算显示当前所有数据需要的页数;
  4. 根据页面总数求出偏移量(每页开始显示的数据的位置);
  5. 在SQL语句中添加数据显示限定语句(limit);
  6. 定义页面切换的点击按钮;
  7. 定义获取当前页面页数的变量;
  8. 定义每一个页面切换按钮的链接。
<?PHP

$page = empty($_GET['page']) ? 1 : $_GET['page'];           //获取页数

//连接数据库
$link = mysqli_connect('localhost','root','root');

//判断数据库是否连接成功
if(!$link)
{
    exit("数据库连接失败");
}

//设置字符集
mysqli_set_charset($link,'utf8');

//选择数据库
mysqli_select_db($link,'king');

/******************分页部分****************/
//获取数据条数
$sql = "select count(*) as count from info";
$result = mysqli_query($link,$sql);
$pageRes = mysqli_fetch_assoc($result);
$count = $pageRes['count'];         //总数

//定义每页显示5条数据
$num = 5;

//计算需要显示的页数
$page_count = ceil($count/$num);

//根据总页数求出偏移量
$offset = ($page - 1) * $num;

//上一页
$back = $page - 1;
if($back < 1)
{
    $back = 1;
}

//下一页
$next = $page + 1;
if($next > $page_count)
{
    $next = $page_count;
}

/******************分页结束**************/

$sql = "select * from info limit " .$offset.','.$num;

//发送SQl语句
$res = mysqli_query($link,$sql);

/*********次数处理数据结果显示省略。。。。*********/
//关闭数据库,释放资源
mysqli_close($link);

?>

<!-页面切换标签定义->
<br /><br />
<a href="demo2.php?page=1">首页</a>
<a href="demo2.php?page=<?=$back;?>">上一页</a>
<a href="demo2.php?page=<?=$next;?>">下一页</a>
<a href="demo2.php?page=<?=$page_count;?>">尾页</a>

显示效果:

技术分享图片

PHP系列(四):PHP连接数据库

原文:https://www.cnblogs.com/k1ng/p/12355816.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!