前言
阅读本文建议在学习完 php基础(点我开始学习) 和 MySQL基础(点我开始学习)
一、数据备份与还原
数据库中的数据需要定期备份
1.1 数据备份
利用mysqldump工具,语法: mysqldump 数据库连接 > 数据备份地址
例题:将studentinfo数据库中所有的表导出到data.sql中:
例题:只想导出bank表: 我们将data.sql拖到vscode中,查看:
1.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.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() // 关闭连接
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!