【PHP语言-PDO接口】PDO接口执行脚本操作数据库

这篇具有很好参考价值的文章主要介绍了【PHP语言-PDO接口】PDO接口执行脚本操作数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

一、 PDO简介

二、 PDO对象方法

三、实战中心


前言:

PDO:数据库抽象层

简介:PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,PDO解决了数据库连接不统一的问题。



一、 PDO简介

1、PDO简介
(1)PHP的PDO(PHP Data Objects)是一种用于在PHP中访问数据库的扩展。它提供了一个统一的接口,使得开发人员可以使用相同的方式与不同类型的数据库进行交互,例如MySQL、PostgreSQL和SQLite等

(2)它与PHP5.1版本一起发布的,目前支持的数据库包括Firebird、FreeTDS、Interbase、MySQL、MS SQL Server、ODBC、Oracle、Postgre SQL、SQLite和Sybase。

(3)当操作不同数据库时,只需要修改PDO中的DSN(数据库源,如$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";) ,即可使用PDO的统一接口进行操作。


2、PDO特性

(1)数据库支持: PDO提供了对多种数据库的支持,包括MySQL、SQLite、PostgreSQL、Oracle等,因此你可以在不改变代码逻辑的情况下切换使用不同的数据库。

(2)面向对象的接口: PDO使用面向对象的编程接口,通过实例化PDO类来连接数据库,并使用PDOStatement类执行查询和操作。

(3)预处理语句: PDO支持预处理语句(prepared statements),这是一种在执行前将SQL查询与数据分离的方式。预处理语句可以提高性能,并提供了更好的安全性,防止SQL注入攻击。

(4)绑定参数: 使用PDO的预处理语句,你可以绑定参数到查询中,而不是直接将值插入到SQL语句中。这种方式可以有效地防止SQL注入,并允许您重复使用准备好的语句,只需更改绑定的参数即可。

(5)事务支持: PDO支持数据库事务,你可以使用beginTransaction()开始一个事务,然后通过commit()提交事务或使用rollback()回滚事务以撤消之前的更改。

(6)错误处理: PDO使用异常机制来处理数据库操作中的错误。你可以捕获和处理PDOException异常,以便在出现错误时采取适当的措施。

(7)多个结果集: 在某些数据库中,你可以执行返回多个结果集的查询。PDO提供了方法来访问和处理这些结果集。

(8)支持命名占位符和问号占位符: PDO支持使用命名占位符(如:name)或问号占位符(如?)进行参数绑定。

(9)元数据获取: PDO提供了获取数据库元数据的方法,如获取表结构、列信息等。

(10)数据库连接管理: PDO提供了对数据库连接的管理,包括连接池管理、连接参数设置等。


3、PDO支持的数据库

【PHP语言-PDO接口】PDO接口执行脚本操作数据库,web安全,安全,mysql,sql



4、PDO的配置

配置php配置文件,开启相应扩展
extension=php_pdo.dll;

extension=php_pdo_mysql.dll;

【PHP语言-PDO接口】PDO接口执行脚本操作数据库,web安全,安全,mysql,sql

【PHP语言-PDO接口】PDO接口执行脚本操作数据库,web安全,安全,mysql,sql


5、PDO连接数据库
连接数据库:

1、参数形式

2、URL形式

3、配置文件


参数形式连接数据库(掌握)

<?php
$host = 'localhost';
$dbname = 'your_database_name';
$username = 'your_username';
$password = 'your_password';

try {
  $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
  // 设置PDO错误模式为异常
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "成功连接到数据库";
} catch(PDOException $e) {
  echo "数据库连接失败: " . $e->getMessage();
}
?>


二、 PDO对象方法


1、对象方法:【PHP语言-PDO接口】PDO接口执行脚本操作数据库,web安全,安全,mysql,sql

【PHP语言-PDO接口】PDO接口执行脚本操作数据库,web安全,安全,mysql,sql


2、代码案例    

1、连接到数据库:

$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    // 设置错误模式为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "成功连接到数据库";
} catch (PDOException $e) {
    echo "连接数据库失败: " . $e->getMessage();
}

###
2、执行查询语句并获取结果集:
 

$query = "SELECT * FROM users";
$stmt = $pdo->query($query);

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['username'] . "<br>";
}

###
3、使用预处理语句执行带参数的查询:
 

$query = "SELECT * FROM users WHERE age > :age";
$stmt = $pdo->prepare($query);

$age = 18;
$stmt->bindParam(':age', $age, PDO::PARAM_INT);
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['username'] . "<br>";
}

###
4、插入数据:

$query = "INSERT INTO users (username, email) VALUES (:username, :email)";
$stmt = $pdo->prepare($query);

$username = "john";
$email = "john@example.com";

$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);

$stmt->execute();

###
5、更新数据:

$query = "UPDATE users SET email = :email WHERE id = :id";
$stmt = $pdo->prepare($query);

$email = "newemail@example.com";
$id = 1;

$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);

$stmt->execute();


三、实战中心

README.md · 书半生/网络安全知识体系-实战中心 - 码云 - 开源中国 (gitee.com)https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge文章来源地址https://www.toymoban.com/news/detail-538202.html

到了这里,关于【PHP语言-PDO接口】PDO接口执行脚本操作数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PostgreSQL数据库命令行执行SQL脚本的三种方式

    生成环境中,出于安全性等原因,往往不提供数据库连接工具,所以对数据库的更新和升级就得通过命令行来实现。本文总结了三种命令行执行sql脚本的方式。 命令格式: psql [option…] [dbname] [username] 常用参数介绍: -h:指定IP地址或主机名。 -p:指定端口,默认为5432。 -U:

    2024年02月11日
    浏览(54)
  • PHP自己的框架PDO数据表前缀、alias、model、table、join方法实现(完善篇九--结束)

    一、实现功能,数据表前缀、alias、model、table、join方法实现    二、表前缀实现 1、config.php增加表前缀  2、增加表前缀方法function.php 3、PDO数据表增加表前缀ModelBase.php 三、alias数据表别名和join实现实现ModelBase.php 四、控制器实现,数据表前缀、alias、model、table、join方法查询

    2024年02月10日
    浏览(35)
  • PHP连接并操作数据库

    (如果有环境请直接跳过,阅读下面的操作) 在Linux中进行PHP和数据库的环境搭建(适用于CentOS-7.0版本或以上),以下操作全部是在 root 用户中操作,普通用户中记得命令前加入 sudo 进行提权后进行操作。 1、安装数据库 2、配置数据库 可以用这个手动设置密码,防止空密码登

    2024年02月05日
    浏览(47)
  • docker-compose mongo 启动mongo容器后如何执行脚本创建用户数据库问题

    系统版本: 环境变量:Linux下必须export声明两个环境变量,注意这个账户同时也是创建的数据库的连接用户密码 目录:/home/user/docker-compose.yml 镜像:mongo:6.0.10 容器名:mongobss 挂载卷:data/db数据目录 start.sh后创建用户和库的脚本 环境变量:定义初始的mongo root角色用户 privil

    2024年02月04日
    浏览(49)
  • 1.php开发-个人博客项目&文章功能显示&数据库操作&数据接收

    (2022-day12) 1-php入门,语法,提交 2-mysql 3-HTML+css ​ 博客-文章阅读功能初步实现 实现功能: 前端文章导航,点入内容显示,更改ID显示不同内容 实现步骤: 1-前端页面显示,编写(html,css) 2-数据库文章数据导入(mysql操作) 3-php操作mysql编写-php变量提交 ​ 搜:html横向导

    2024年01月20日
    浏览(49)
  • php 扩展pdo查询SqlServer中文乱码问题

    默认是utf-8 或者可以强制utf-8 PDO::SQLSRV_ATTR_ENCODING=PDO::SQLSRV_ENCODING_UTF8 microsoft文档内容:( 常量 (Microsoft Drivers for PHP for SQL Server) - PHP drivers for SQL Server | Microsoft Learn ) 编码常量 PDO::SQLSRV_ATTR_ENCODING 属性可传递给 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、PDOStatement::bind

    2024年02月10日
    浏览(36)
  • java serverlets使用数据源连接oracle数据库,并执行查询操作代码

    package chap03; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.PreparedStatement; import java.sql.Statement; import java.util.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.Namin

    2024年02月08日
    浏览(46)
  • springboot+redis+mysql+quartz-通过Java操作jedis定时使用lua脚本获取缓存数据并更新数据库

    springboot+redis+mysql+quartz-通过Java操作jedis定时使用lua脚本获取缓存数据并更新数据库 代码讲解:7.1点赞功能-定时持久化到数据库-Java整合lua_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1ZX4y1H7JT/ 代码: blogLike_schedule/like07 · xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) https://gitee

    2024年02月13日
    浏览(44)
  • 后端服务器中实现MySQL数据库操作接口

    首先,在Node.js中连接MySQL数据库需要用到mysql模块。可以使用npm包管理器进行安装: 安装完成之后,在Node.js中引入mysql模块: 接着,可以使用mysql.createConnection()方法创建数据库连接。这个方法需要传入一些连接参数,比如主机名、用户名、密码、数据库名称等: 其中,host表

    2024年04月11日
    浏览(39)
  • 基于mysql5.7制作自定义的docker镜像,适用于xxl-job依赖的数据库,自动执行初始化脚本(ddl语句和dml语句)

    xxl-job-admin依赖mysql数据库,且需执行初始化脚本,包括ddl和dml语句。 具体的步骤总结如下: 1、新建数据库xxl_job 2、创建mysql表table 3、执行dml语句,包括新建admin用户及密码,创建执行器和任务。 毫无疑问,人工每次去操作这些,不仅耗费人力和时间,还容易出错。 所以,本

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包