PHP数据库操作实战

数据库连接

php 复制代码
<?php
$servername = "localhost";  // 服务器地址(127.0.0.1)
$username = "root";         // 数据库用户名
$password = "root";         // 数据库密码
$dbname = "haha";           // 数据库名称

// 创建连接(面向对象方式)
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接
if($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
}
// 没有错误信息说明连接成功
?>

技术要点:

  • localhost:本地主机,等同于127.0.0.1
  • mysqli:MySQL改进扩展,支持面向对象和过程化两种风格
  • 错误处理:使用die()函数中止脚本并输出错误信息

查询操作(SELECT)

php 复制代码
<?php
// 准备SQL查询语句
$sql = "SELECT * FROM table1 WHERE id < 3";
// SELECT * - 选择所有列
// FROM table1 - 从table1表中查询
// WHERE id < 3 - 筛选条件

// 执行查询
$result = $conn->query($sql);

// 检查结果
if($result->num_rows > 0) {
    // 遍历结果集
    while($row = $result->fetch_assoc()) {
        echo $row['id'] . '-----' . 
             $row['username'] . '------' . 
             $row['job'] . '<br/>';
    }
} else {
    echo "0结果";
}
?>

WHERE子句高级用法:

sql 复制代码
-- 多条件查询(AND)
SELECT * FROM table1 WHERE id > 1 AND id < 4;

-- 多条件查询(OR)
SELECT * FROM table1 WHERE username='user1' OR username='user2';

-- 不加WHERE返回所有数据
SELECT * FROM table1;

对象属性说明:

  • num_rows:结果集中的记录数
  • field_count:字段数量
  • fetch_assoc():获取关联数组形式的结果

插入操作(INSERT)

php 复制代码
<?php
$sql = "INSERT INTO table1 (username, password, job) 
        VALUES('user5', 'mima55', 'cfo')";

if($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "插入失败:" . $conn->error;
}
?>

应用场景:

  • 用户注册功能
  • 发布文章、评论
  • 订单创建

安全提示: 实际应用中应该从GET或POST获取用户输入,而非硬编码。

更新操作(UPDATE)

php 复制代码
<?php
$sql = "UPDATE table1 SET password='mima598' WHERE username='user5'";

if($conn->query($sql) === TRUE) {
    echo "修改成功";
} else {
    echo "修改失败:" . $conn->error;
}
?>

安全警告:

sql 复制代码
-- 危险操作:不加WHERE会修改所有记录
UPDATE table1 SET password='123456';

-- 安全操作:使用WHERE限定范围
UPDATE table1 SET password='123456' WHERE id=5;

删除操作(DELETE)

php 复制代码
<?php
$sql = "DELETE FROM table1 WHERE username='user5'";

if($conn->query($sql) === TRUE) {
    echo "删除成功";
} else {
    echo "删除失败:" . $conn->error;
}
?>

注意事项:

  • 删除操作不可恢复,务必谨慎
  • 必须使用WHERE子句限定删除范围
  • 即使删除不存在的记录也会返回"成功"

关闭连接

php 复制代码
<?php
// 操作完成后关闭数据库连接
$conn->close();
?>

专业规范:

  • 及时关闭连接释放资源
  • 避免高并发时连接池耗尽
  • 防止数据库崩溃
相关推荐
时间售卖铺15 分钟前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw20 分钟前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社1 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙2 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
niucloud-admin2 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
ESDWAN2 小时前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
captain3763 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
呆呆虫123 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心中有你02143 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川3 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化