一.
PHP来操作数据库
SQL语句是操作数据库的计算机语言
不管是什么方式,本质上,都是在执行SQL语句,只是执行方式不同
普通的执行方式,通过cmd命令行,才执行SQL语句,执行结果,只存在于cmd命令行中
前端页面,后端程序php,java 等无法使用其中的数据的
MySQL-front 可视化软件,本质也是在执行SQL语句
操作结果,也是只存在于可视化软件中,其他程序也是无法使用
PHP的本质也是在PHP程序中,运行SQL语句,来操作数据库
PHP提供了专门的方法,来对MySQL数据库进行操作
并且获取操作结果,在PHP程序中
方法有3种方法
mysql 函数库 弃用
mysqli函数库
PDO函数库 必须7.0以上版本才可以
PHP中通过PHP提供的函数库,来运行指定的函数方法,来才做MySQL数据库
php_mysqli 函数库,操作MySQL书库的语法和步骤,基本固定的形式
通过mysqli函数库方法,来操作MySQL数据库固定步骤
1,链接,登录
$link = mysqli_connect(地址,账号,密码,库名,端口);
2,定义要执行的SQL语句
$sql = "SQL语句";
3,执行SQL语句
$result = mysqli_query($link,$sql);
4,获取执行结果
$arr = mysqli_fetch_all($result , MYSQLI_ASSOC);
5,关闭数据库
mysqli_close($link);
1,链接登录MySQL数据库
mysqli_connect() 连接登录数据库的方法
参数1:MySQL数据库的地址
当前使用的是本地数据库
'localhost' 或者 '127.0.0.1'
参数2:登录MySQL的账号
'root'
参数3:登录MySQL的密码
'root'
参数4:使用数据库的名称
'nz2002'
参数5:MySQL数据库的端口号
3306
$link = mysqli_connect('localhost','root','root','nz2002',3306);
2,定义SQL语句
将我们要执行的SQL语句,定义成字符串的形式
最外一定要使用 " " 双引号包裹,为了解析变量
双引号之内,只能使用单引号
SQL语句,可以没有分号结尾
主要注意编码格式
$sql = "SQL语句";
3,执行SQL语句
执行结果是 结果集对象
对象中有执行结果,但是无法直接使用
$result = mysqli_query($link , $sql);
4,获取SQL语句执行结果
从结果集对象中,抽取具体的数据内容,组成新的数组,二维数组
mysqli_fetch_all($result , MYSQLI_ASSOC)
$arr = mysqli_fetch_all($result , MYSQLI_ASSOC);
5,关闭mysql数据库
链接的那个数据库,就关闭那个数据库
mysqli_close($link);
6,如果需要,要在执行SQL语句之前,设定编码格式
mysqli_query($link , "SET NAMES uft8或者gbk");
会影响中文的显示和查询
7,mysqli_query($link , $sql);
如果 mysqli_query 执行的是 查询语句,执行结果是结果集对象
如果 mysqli_query 执行的是 非查询语句,执行结果是 布尔类型 true成功 false失败
如果执行结果是布尔类型,不能使用 mysqli_fetch_all 来获取数组
只有查询语句,可以使用 mysqli_fetch_all 来获取数组
二.
<?php
// PHP操作MySQL数据库的方法和步骤
// 1,登录MySQL数据库
// 如果连接成功,返回一个对象,其中存储很多的连接信息
// 如果连接失败,程序执行报错
// 参数1:连接MySQL数据库地址
// 当前是本地数据库 'localhost' 或者 '127.0.0.1'
// 参数2:连接MySQL数据库账号
// 'root'
// 参数3:连接MySQL数据库密码
// 'root'
// 参数4:连接MySQL数据库,指定使用的库
// 'nz2002'
// 参数5:连接MySQL数据库端口
// 3306
// 实际项目中,会给定,MySQL的地址,账号,密码,库名,端口
// 给你什么,你就输入什么就可以了
// 参数内容是项目中给定的,参数的顺序,不能变
$link = mysqli_connect('localhost','root','root','nz2002',3306);
echo '<pre>';
print_r($link);
echo '</pre>';
// 2,设定需要执行的SQL语句
// SQL语句,要根据实际项目需求而定
// 目前查询所有姓何的人员名单
// 问题:
// 1,定义的SQL语句,实际上就是你需要执行的SQL语句程序,以字符串的形式来定义
// 2,定义SQL语句,最外层,要使用双引号,为了如果有变量,可以解析变量
// 3,双引号之内,只能使用单引号
// 4,定义的SQL语句中,可以没有分号结束
// 因为此时并不是真的执行SQL语句,只是来定义
// 5,变量一定要会用{}包裹,防止发生冲突
// 6,要确保编码格式正常,这样才能正常的查询设定中文
$str = 'name';
// 查询结果,mysqli_query()执行结果是结果集对象
$sql1 = "SELECT * FROM `student` WHERE `{$str}` LIKE '何%'";
// 给student表结构中,age字段的 所有数据,都+1
$sql2 = "UPDATE `student` SET `age` = `age`+1";
// 2.5,设定SQL语句的编码格式
// 只要数据库格式设定正确,一般都可以保证编码格式是utf8
// 为了保险起见,或者查询结果中,中文显示是乱码
// 可以指定编码格式是utf8
mysqli_query($link,"SET NAMES utf8");
// 3,执行SQL语句
// mysqli_query() 执行SQL语句的方法
// 参数1:链接MySQL数据集的执行结果对象
// 要使用连接成功后,对象中的相关信息
// 参数2:定义的SQL语句
// 查询结果是一个对象形式
// 如果编码格式设定有问题,执行结果,就会有问题,执行就会报错
$result = mysqli_query($link,$sql2);
var_dump($result);
echo '<pre>';
print_r($result);
echo '</pre>';
// 获取具体的执行结果
// 从结果集对象中,抽取具体的数据内容
// 组成新的数组形式存储
// 参数1:执行SQL语句的结果集对象
// 参数2:设定数组的索引下标的形式
// MYSQLI_ASSOC 数组索引下标,是字段名称
// 数组形式与数据库内容形式相互对应
$arr = mysqli_fetch_all($result,MYSQLI_ASSOC);
// echo '<pre>';
// print_r($arr);
// echo '</pre>';
// 操作结束,关闭数据库
// 参数:链接数据库结果
mysqli_close($link);
三