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.mzph.cn/news/587074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

荣耀之城(富饶之地)

规则简介 这是一个回合制的游戏,每个回合都是先选角色然后按照角色编号依次执行回合。 8个角色:刺客、小偷、魔术师、国王、住持、商人、建筑师、领主 根据人数的不同,按照不同的规则依次选取一个角色,国王第一个选&#xff0c…

2023年03月17日_微软和谷歌办公AI的感慨

2023年3月17日 最近这个科技圈的消息 有点爆炸的让人应接不暇了 各种大公司简直就是神仙打架 你从来没有见过这么密集的 这么高频的产品发布 昨天微软是发布了Office 365 Copilot 在里边提供了大量的AI的功能 然后谷歌呢也发布了这个Google Workspace AI 也是跟365 Cop…

『番外篇七』SwiftUI 获取视图全局位置在 NavigationStack 中失效的解决方法

概览 在 番外篇六』SwiftUI 取得任意视图全局位置的三种方法 这篇博文里,我们详细讨论了在 SwiftUI 中获取任意视图全局坐标的几种方法。 不过,我们也从中提到了某些方法无法适用于 NavigationStack 视图,本篇博文由此应运而生。 在本篇博文种,您将学到如下内容: 概览1.…

MFC连接mqtt服务器订阅和发送数据-自设计函数库

以下是一个简单的MQTT连接库文件&#xff0c;其中包含了连接、断开、订阅主题、发送数据和接收数据等函数。请注意&#xff0c;这只是一个示例&#xff0c;你可能需要根据自己的实际需求进行修改。 #include <iostream> #include <cstring> #include <sys/type…

分布式技术之故障隔离技术

文章目录 什么是故障隔离&#xff1f;分布式故障隔离策略线程级隔离进程级隔离资源隔离故障隔离策略综合对比 什么是故障隔离&#xff1f; 故障隔离就是&#xff0c;把故障通过某种方式与其他正常模块进行隔离&#xff0c;以保证某一模块出现故障后&#xff0c;不会影响其他模…

NuScenes Dataset的坐标系及OpenPCDet里针对NuScenes Dataset格式的输入输出数据的坐标系转换

网上很多文章只提了NuScenes坐标系有哪些&#xff0c;但是没有找到一篇文章把NuScenes坐标系的转换结合代码说全说明白了&#xff0c;结合工作需要&#xff0c;针对OpenPCDet里读取NuScenes数据集对数据做坐标转换的代码说一下。 OpenPCDet是3D点云目标检测框架&#xff0c;顾…

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850 2023/12/29 11:10 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.…

机器学习:走向智能化未来的钥匙

机器学习是人工智能领域中的一项关键技术&#xff0c;它使计算机系统能够从经验中学习&#xff0c;并通过数据驱动的方式不断优化和改进性能。本文将深入介绍机器学习的基本原理、发展历程、主要算法、应用领域以及未来趋势&#xff0c;带领读者深入了解这门推动科技创新的引擎…

2023年03月21日_chatgpt宕机事件的简单回顾

你能想象吗 ChatGPT挂了 昨天半夜呢 来自全球各地的用户纷纷发现 ChatGPT的网站弹出了报错警告的信息 然后立即就无法使用了 即使是有特权的plus账户也未能幸免 一时之间呢 chatgptdown的话题在Twitter刷屏 不少重度的用户表示很着急 有的用户说呢没了ChatGPT 这工作…

MySQL入门教程-函数,索引

4MySQL函数 常用函数 -- 数学运算SELECT ABS(-8); -- 绝对值SELECT CEIL(5.1); -- 向上取整SELECT CEILING(5.1); -- 向上取整SELECT RAND(); -- 返回0~1之间的一个随机数SELECT SIGN(-10); -- 返回一个数的符号;0返回0;正数返回1;负数返回-1​-- 字符串函数SELECT CHAR_LENGT…

推荐系统中的 业务指标 覆盖率

覆盖率&#xff08;Coverage&#xff09;是推荐系统评估指标之一&#xff0c;用于衡量推荐系统是否能够覆盖物品空间中的多样性&#xff0c;即是否能够推荐系统中的每个物品都能够被推荐给用户。覆盖率通常是一个百分比&#xff0c;表示被推荐的物品占总物品集合的比例。 覆盖…

设计模式-调停者模式

设计模式专栏 模式介绍模式特点应用场景调停者模式与命令模式的比较代码示例Java实现调停者模式Python实现调停者模式 调停者模式在spring中的应用 模式介绍 调停者模式是一种软件设计模式&#xff0c;主要用于模块间的解耦&#xff0c;通过避免对象之间显式的互相指向&#x…

使用软件解决T490笔记本57摄氏度温度墙的问题

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 客户使用LenovoT490跑GQRX SDR&#xff0c;接入SDR在5MHz采样率下&#xff0c;机器卡顿。这对于10代i7CPU显然是不正常的。后续发现上网页也卡&#xff0c;卸载杀毒、重装系统、BIOS电源设置、系统最…

#if #ifdef和#ifndef的综合应用。

#include<stdio.h> #define MAX #define MAXIMUM(x,y)(x>y)?x:y #define MINIMUM(x,y) (x>y)?y:x int main() { int a10,b20; #ifdef MAX printf("更大的数字是 %d\n",MAXIMUM(a,b)); #else printf("更小的数字是 %d\n",MINIMUM…

24、Web攻防-通用漏洞SQL注入MYSQL跨库ACCESS偏移

文章目录 一、SQL注入原理   脚本代码在与数据库进行数据通讯时&#xff08;从数据库取出相关数据进行页面显示&#xff09;&#xff0c;使用预定义的SQL查询语句进行数据查询。能通过参数传递自定义值来实现SQL语句的控制&#xff0c;执行恶意的查询操作&#xff0c;例如查询…

【BERT】深入BERT模型2——模型中的重点内容,两个任务

前言 BERT出自论文&#xff1a;《BERT&#xff1a;Pre-training of Deep Bidirectional Transformers for Language Understanding》 2019年 近年来&#xff0c;在自然语言处理领域&#xff0c;BERT模型受到了极为广泛的关注&#xff0c;很多模型中都用到了BERT-base或者是BE…

nginx介绍、配置和使用

nginx介绍、配置和使用 1、nginx介绍2、nginx安装、配置3、nginx使用 1、nginx介绍 Nginx&#xff08;发音为"engine-x"&#xff09;是一个开源的高性能、高可靠性的HTTP服务器和反向代理服务器&#xff0c;也可以用作邮件代理服务器。它最初由Igor Sysoev于2004年创…

vscode文章汇总

Visual Studio Code (VSCode)&#xff0c;快速跳转到指定行的代码 vscode 搜索界面的files to include files to exclude 是什么功能&#xff1f; vscode 添加 ros头文件 VS Code的tasks.json配置文件如何编写? VS Code的launch.json配置文件如何编写? c_cpp_properties.js…

拓展操作(二) nginx 反向代理mysql 和redis操作

让清单成为一种习惯 互联网时代的变革,不再是简单的开发部署上线,持续,正确,安全地把事情做好尤其重要;把事情做好的前提是做一个可量化可执行的清单,让工程师就可以操作的清单而不是专家才能操作: 设定检查点 根据节点执行检查程序操作确认或边读边做 二者选其一不要太…

C++ 类打包LIB方法,创建 C 接口函数方法

起因&#xff1a;建立lib文件时&#xff0c;尽量提供最简单的接口参数及函数。不暴露内部数据结构&#xff01; 解&#xff1a; lib 源文件 Test.h #ifndef __TEST_H__ #define __TEST_H__#ifndef BOOL typedef unsigned char BOOL; #endifclass CTray { public: Ge…