当前位置: 首页 > news >正文

PHP8使用PDO对象增删改查MySql数据库

PDO简介

PDO(PHP Data Objects)是一个PHP扩展,它提供了一个数据库访问层,允许开发人员使用统一的接口访问各种数据库。PDO 提供了一种用于执行查询和获取结果的简单而一致的API。

以下是PDO的一些主要特点:

  • 统一接口:无论使用哪种数据库,都可以使用相同的PDO接口进行操作。
  • 预处理语句:PDO支持预处理语句,这有助于防止SQL注入攻击。
  • 参数绑定:使用预处理语句时,可以绑定参数,这有助于避免SQL注入攻击,并使代码更易于维护。
  • 异常处理:PDO提供了一个异常处理机制,可以捕获并处理数据库相关的错误。
  • 数据库无关性:由于PDO提供了一个统一的接口,你可以在不更改代码的情况下更换数据库。
  • 绑定结果:PDO允许你绑定查询结果中的列值到变量,而不是使用索引数组。

PDO连接MySql数据库

// 创建连接
$dsn = "mysql:host=localhost;dbname=your_database;charset=utf8mb4";
$username = "your_username";
$password = "your_password";try {$conn = new PDO($dsn, $username, $password);$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {echo "连接失败: " . $e->getMessage();
}

插入数据(增)

// 插入数据(增)
$sql = "INSERT INTO your_table (column1, column2) VALUES (:value1, :value2)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':value1', $value1);
$stmt->bindParam(':value2', $value2);
$value1 = 'example_value1';
$value2 = 'example_value2';
$stmt->execute();

查询数据(查)

// 查询数据(查)
$sql = "SELECT * FROM your_table WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id', $id);
$id = 1;
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {// 处理查询结果
}

更新数据(改)

// 更新数据(改)
$sql = "UPDATE your_table SET column1 = :new_value WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':new_value', $new_value);
$stmt->bindParam(':id', $id);
$new_value = 'new_example_value';
$id = 1;
$stmt->execute();

删除数据(删)

// 删除数据(删)
$sql = "DELETE FROM your_table WHERE id = :delete_id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':delete_id', $delete_id);
$delete_id = 1;
$stmt->execute();

不需要手动关闭PDO连接,在脚本结束时会自动关闭

http://www.lryc.cn/news/270247.html

相关文章:

  • 证明:切线垂直于半径
  • 普中STM32-PZ6806L开发板(STM32CubeMX创建项目并点亮LED灯)
  • 【Windows】共享文件夹拍照还原防火墙设置(入站,出站设置)---图文并茂详细讲解
  • 1.决策树
  • 基于微信小程序的停车预约系统设计与实现
  • 再见2023,你好2024
  • 年度总结|存储随笔2023年度最受欢迎文章榜单TOP15-part1
  • 微信小程序 手机号授权登录 偶尔后端解密失败
  • Mysql 容易忘的 sql 指令总结
  • 【SD】tile 模型 - 固定衣服 生成人物 ☑
  • StackOverflowError的JVM处理方式
  • 基于DFA算法实现敏感词过滤
  • 模式识别与机器学习-无监督学习-聚类
  • Python中property特性属性是什么
  • vue3 全局配置Axios实例
  • EI级 | Matlab实现TCN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测
  • WeNet语音识别分词制作词云图
  • Proxyman:现代本地Web调试代理工具
  • k8s中DaemonSet实战详解
  • 信号处理设计模式
  • Linux权限的基本理解
  • AI人工智能大模型讲师叶梓《基于人工智能的内容生成(AIGC)理论与实践》培训提纲
  • nat地址转换
  • 第12课 循环综合举例
  • Tuxera NTFS for Mac2024免费Mac读写软件下载教程
  • C++ 具名要求
  • 大创项目推荐 深度学习二维码识别
  • C++初阶——基础知识(函数重载与引用)
  • 车载电子电器架构 —— 电子电气系统开发角色定义
  • 最新Redis7哨兵模式(保姆级教学)