数据库账户文件
<?php
namespace mysqli_edu;
// 数据库连接配置参数
return [
// 数据库的类型
'type' => $type ?? 'mysql',
// 数据库默认主机
'host' => $host?? 'localhost',
// 默认数据库
'dbname'=> $dbname ?? 'php',
// 默认字符编码集
'charset'=> $charset ?? 'utf8',
// 默认端口号
'port'=> $port ?? '3306',
// 默认的用户名
'username'=> $username ?? 'root',
// 默认的用户密码
'password'=> $password ?? 'root',
];
数据库连接文件
<?php
namespace mysqli_edu;
use mysqli;
// 1. 加载外部的数据库连接参数
$config = require __DIR__ . '/config/database.php';
extract($config);
// 将关联数组中的键值对, 转为变量的名值对
// 2. 连接数据库
$mysqli = new mysqli($host, $username, $password, $dbname);
// 3. 判断是否连接成功?
if ($mysqli->connect_errno) echo $mysqli->connect_error;
// 4. 设置客户端默认的字符编码集
$mysqli->set_charset($charset);
// var_dump($mysqli);
1.查询操作
<?php
// 查询2: 多条记录
// 1. 连接数据库
require 'connect.php';
// 2. 操作数据库
$sql = "SELECT * FROM `spxx` LIMIT 50";
$mysqli_result = $mysqli->query($sql);
if ($mysqli_result && $mysqli_result->num_rows > 0 ) {
$staffs = $mysqli_result->fetch_all();
foreach ($staffs as $staff) {
// vprintf() 与 printf()功能一样, 区别 就是参数是数组
vprintf('<per>id: %s <br>商品名称: %s <br>描述: %s <br> 价格: %s <br>版本: %s <br>颜色: %s <br>套餐: %s <br>详情: %s<hr></per>', $staff);
}
} else {
echo '查询失败或没有查询到满足条件的员工';
}
// 3. 关闭连接
// 释放结果集
// $mysqli_result->free_result();
$mysqli->close();
输出结果:
新增操作
<?php
// 新增操作
// 1. 连接数据库
require 'connect.php';
// 2. 操作数据库
// 前端表单->json格式的字符串, php将这种json字符串转为数组/对象
$arr = ['iQOO 3 5G版 12GB+128GB 驭影黑', '高通骁龙865,双模5G;55W超快闪充;支持LPDDR5+UFS 3.1+Wi-Fi6。KPL顶级电竞模式,180Hz触控加速', 3998, '全网通', '黑色', '官方标配', '这里是描述,有点长'];
array_walk($arr, function(&$item, $key) {
$item = "'$item'";
});
$data = implode(', ', $arr);
$sql = "INSERT `spxx` (`name`,`miaoshu`,`jiage`,`banebn`,`yanse`,`taocan`,`xiangqing`) VALUES ($data)";
if ($mysqli->query($sql)) {
if ($mysqli->affected_rows > 0) {
echo '成功添加了 ' . $mysqli->affected_rows . ' 条记录, 新增记录主键ID: ' . $mysqli->insert_id;
} else {
echo '没有添加新记录';
}
} else {
die('添加失败'. $mysqli->errno . ' : ' . $mysqli->error);
}
echo $sql;
// 3. 关闭连接
// 释放结果集
$mysqli->close();
修改操作
<?php
// 更新操作
// 1. 连接数据库
require 'connect.php';
// 2. 操作数据库
// 前端表单->json格式的字符串, php将这种json字符串转为数组/对象
$arr = ['name'=>'iQOO 手机', 'jiage'=>2999];
array_walk($arr, function(&$item, $key) {
$item = "`$key` = '$item'";
});
$data = implode(', ', $arr);
$sql = "UPDATE `spxx` SET " . $data . " WHERE `id` = 2";
if ($mysqli->query($sql)) {
if ($mysqli->affected_rows > 0) {
echo '成功更新了 ' . $mysqli->affected_rows . ' 条记录';
} else {
echo '没有更新任何记录';
}
} else {
die('更新失败'. $mysqli->errno . ' : ' . $mysqli->error);
}
// 3. 关闭连接
// 释放结果集
$mysqli->close();
删除操作
<?php
// 删除操作
// 1. 连接数据库
require 'connect.php';
// 2. 操作数据库
$sql = "DELETE FROM `spxx` WHERE `id` =" . $_GET['id'];
if ($mysqli->query($sql)) {
if ($mysqli->affected_rows > 0) {
echo '成功删除了 id=' .$_GET['id'] . ' 的记录';
} else {
echo '没有删除任何记录';
}
} else {
die('删除失败'. $mysqli->errno . ' : ' . $mysqli->error);
}
// 3. 关闭连接
$mysqli->close();
总结:数据库的增查改删基本都懂了,今天在预习下回话。