PHP编程进阶:PHP连接MySQL数据库操作指南

10 篇文章 1 订阅

前言

在当今的Web开发领域,PHPMySQL的组合无疑是构建动态网站和应用程序的经典之选。它们以高效、灵活和易于学习的特点,赢得了广大开发者的青睐。本指南旨在为您提供一套从基础到实践的全面教程,帮助您掌握使用PHP连接MySQL数据库,并进行数据备份、还原、以及日常数据操作(包括增删改查)的关键技能。
无论您是PHPMySQL的初学者,还是希望巩固和提升现有技能的开发者,本指南都将作为您学习旅程中的得力助手。通过清晰的结构安排——从环境准备(如开启mysqli扩展)、数据库连接、到具体的数据操作与备份还原策略,我们将一步步引导您深入理解并掌握这些核心技能。
在掌握这些基础之后,您将能够更加自信地面对复杂的Web开发项目,实现数据的高效管理和应用。让我们一同踏上这段学习之旅,探索PHPMySQL结合的无限可能!

1、数据备份与还原

数据库中的数据需要定期备份

1.1 数据备份

利用mysqldump工具,语法:
mysqldump 数据库连接 > 数据备份地址

例题:将studentinfo数据库中所有的表导出到data.sql中:
在这里插入图片描述


例题:只想导出bank表:
在这里插入图片描述
我们将data.sql拖到vscode中,查看:
在这里插入图片描述

1.2 数据还原

导出带有创建数据库语法的数据
方法一:
在这里插入图片描述
在这里插入图片描述


创建新的数据库,将备份的数据导入:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


方法二:
在这里插入图片描述

2、连接数据库

2.1 开启mysqli扩展

在php.ini中开启mysqli扩展
extension==php_mysqli.dll
开启扩展后重启服务器,就可以使用mysqli_函数了。
在这里插入图片描述

2.2 连接数据库

1、创建一个data数据库:
在这里插入图片描述
在这里插入图片描述
然后在queires下编写sql语句
在这里插入图片描述
2、创建news表并插入数据:

drop table if exists news;

create table news (
  id int UNSIGNED auto_increment PRIMARY KEY comment '主键',
  title VARCHAR(20) not null comment '标题',
  content text not null comment '内容',
  createtime int not null comment '添加时间'
) engine=innodb charset=gbk comment '新闻表';

-- 插入测试数据
insert into news values (null, 'counter', 'php、mysql、vue、react', UNIX_TIMESTAMP());
insert into news values (null, 'jack', 'java、mysql、vue、react', UNIX_TIMESTAMP());

在这里插入图片描述
在这里插入图片描述
3、连接数据库

mysqli_connect(主机IP, 用户名, 密码, 数据库名, 端口号)   // 如果端口号是3306可以省略
mysqli_connect_error()   // 获取连接数据库的错误信息
mysqli_connect_errno()  //  获取连接数据库的错误编码
mysqli_set_charset()  //连接对象,字符编码

测试:
mysqli_connect(主机IP, 用户名, 密码, 数据库名, 端口号)
在这里插入图片描述


mysqli_connect_error() // 获取连接数据库的错误信息
在这里插入图片描述


mysqli_connect_errno() // 获取连接数据库的错误编码
在这里插入图片描述


mysqli_set_charset(连接对象, 字符编码) //连接对象,字符编码

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
    // var_dump($link);
    // echo mysqli_connect_error();
    if (mysqli_connect_error()) {
        echo '错误号'.mysqli_connect_errno(),'<br/>';
        echo '错误信息: '.mysqli_connect_error();
        exit;
    }
    mysqli_set_charset($link, 'gbk');
?>

3、操作数据

3.1 数据操作语句

用到的函数:

mysqli_query()   // 执行SQL语句
mysqli_insert_id()   // 获取插入记录自动增长的id
mysqli_affected_rows()  //  获取受影响的记录数
mysqli_error()   // 获取执行SQL语句的错误信息
mysqli_errono()  //  获取执行SQL语句的错误码

增、删、改语句执行成功返回true,失败返回false。select、show、desc查询成功会返回结果集。

例:
1、执行insert语句:

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
    mysqli_set_charset($link, 'gbk');
    
    $rs = mysqli_query($link, "insert into news values (null, 'jackson', 'dance,voince', unix_timestamp())");
    var_dump($rs);
?>

在这里插入图片描述
在这里插入图片描述
成功后获取自动增长的编号:

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
    mysqli_set_charset($link, 'gbk');
    
    $rs = mysqli_query($link, "insert into news values (null, 'jackson', 'dance,voince', unix_timestamp())");
    // var_dump($rs);
    if ($rs) {
        echo '自动增长的编号是:'.mysqli_insert_id($link);
    }
?>

2、执行update语句
现有数据如下:
在这里插入图片描述
语句:

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
    mysqli_set_charset($link, 'gbk');
    
    $rs = mysqli_query($link, "update news set title='kangkang' where id=4");
    if ($rs) {
        echo '受影响的记录数是:'.mysqli_affected_rows($link);
    }
    else {
        echo '错误码:'.mysqli_errno($link),'<br/>';
        echo '错误信息:'.mysqli_error($link);
    }
?>

错误的情况,将id改为ids肯定就没有这个字段:
在这里插入图片描述
成功的情况:
在这里插入图片描述


3、执行deleta语句

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
    mysqli_set_charset($link, 'gbk');
    
    $rs = mysqli_query($link, "delete from news where id=5");
    echo $rs;
?>

在这里插入图片描述

3.2 数据查询语句

数据查询用select、desc、show,成功会返回结果集,失败返回false

例:
1、select查询语句

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306') or die('连接错误信息:'.mysqli_connect_error());
    mysqli_set_charset($link, 'utf8');
    
    $rs=mysqli_query($link,'select * from news');

    // 将一条记录匹配成索引数组
    $rows=mysqli_fetch_row($rs);
    
    // 将对象中一条数据匹配成关联数组
    $gl=mysqli_fetch_assoc($rs);

    // 将对象中一条数据匹配成既有关联数组又有索引数组
    $glsy=mysqli_fetch_array($rs);
    

    print_r($rows);
    echo '<br/>';
    print_r($gl);
    echo '<br/>';
    print_r($glsy);
    echo '<br/>';

    // 总列数、总行数
    echo '总行数'.mysqli_num_rows($rs), '<br/>';
    echo '总列数'.mysqli_num_fields($rs), '<br/>';
?>

在这里插入图片描述
获取所有数据:

<?php
    $link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306') or die('连接错误信息:'.mysqli_connect_error());
    mysqli_set_charset($link, 'utf8');
    
    $rs=mysqli_query($link,'select * from news');

    // 获取所有数据
    $list=mysqli_fetch_all($rs);
    echo '总数:';
    echo '<pre/>';
    print_r($list);
?>

在这里插入图片描述
销毁结果集并关闭连接:

mysqli_free_result($rs);
mysqli_close($link);

使用的函数:

mysqli_fetch_assoc()  // 将一条数组匹配关联数组
mysqli_fetch_row()  // 将一条记录匹配成索引数组,每次查询指针都将指向当前
mysqli_fetch_array()  // 将一条记录匹配成既有关联数组又有索引数组
mysqli_fetch_all()  // 匹配所有记录
mysqli_num_rows()  //  总行数
mysqli_num_fields()  //  总记录数
mysqli_free_result()  //  销毁结果集
mysqli_close()  // 关闭连接

在学习的PHP和MySQL的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值