<html>
<body>
<?php
#数据库连接
$dbtype = 'mysql';
$host = 'localhost';
$db = 'test';
$user = 'root';
$psw = 'china0913';
$dsn = $dbtype . ':host=' . $host . ';' . 'dbname=' . $db;
try {
$dbh = new PDO($dsn, $user, $psw, array(PDO::ATTR_PERSISTENT=>true));
echo '连接成功<br>';
} catch(Exception $e) {
die('Connect Failed Message: ' . $e->getMessage());
}
#使用query函数查询
$sql = 'SELECT * FROM user';
$query = $dbh->query($sql);
$query->setFetchMode(PDO::FETCH_ASSOC); //设置结果集返回格式,此处为关联数组,即不包含index下标
$rs = $query->fetchAll();
var_dump($rs);
#使用exec函数进行INSERT,UPDATE,DELETE,结果返回受影响的行数
$sql = 'INSERT INTO user (`userName`, `userPassword`, `userAge`) SELECT (MAX(userId) + 1), \'123456\', 18 FROM user'; //插入一行用户数据,其中userName使用userId最大值+1
// $rs = $dbh->exec($sql);
// var_dump($rs) . '<br>';
#使用prepareStatement进行CURD
$sql = 'SELECT * FROM user WHERE userId = ?';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $userId); //绑定第一个参数值
$userId = 1;
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$rs = $stmt->fetchAll();
var_dump($rs);
#使用事务
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //设置错误模式,发生错误时抛出异常
$dbh->beginTransaction();
$sql1 = 'SELECT bookNum FROM book WHERE bookId = ? FOR UPDATE'; //此处加上行锁,可以对bookNum做一些判断,bookNum>1,才做下一步更新操作
$sql2 = 'UPDATE book SET bookNum=bookNum-1 WHERE bookId = ?'; //加上行锁后,如果user1在买书,并且user1的买书过程没有结束,user2就不能执行SELECT查询书籍数量的操作,这样就保证了不会出现只有1本书,却两个人同时买的状况
$stmt1 = $dbh->prepare($sql1);
$stmt2 = $dbh->prepare($sql2);
$stmt1->bindParam(1, $userId); //应该是bookId
$stmt2->bindParam(1, $userId); //应该是bookId
$userId = 1; //应该是bookId
$stmt1->execute();
$stmt2->execute();
$dbh->commit();
} catch(Exception $e) {
$dbh->rollBack();
die('Transaction Error Message: ' . $e->getMessage());
}
?>
</body>
</html>
分享到:
相关推荐
标题 "php_pdo_mysql.dll_dll_PDO_MYSQL_php_" 暗示了我们正在讨论的是PHP的一个扩展,即PDO_MYSQL,它是一个用于MySQL数据库连接的PHP数据对象(PDO)驱动。PDO_MYSQL允许PHP应用程序使用PDO接口与MySQL服务器进行...
总的来说,PDO和PDO_MYSQL是PHP开发中与MySQL数据库交互的重要工具。正确配置和使用这些组件,可以帮助开发者创建安全、高效且易于维护的数据库应用程序。了解如何安装、启用和利用PDO_MYSQL,以及熟悉其提供的功能...
在PHP开发中,PDO(PHP Data Objects)是一个用于数据库访问的扩展,提供了统一的API来访问多种数据库系统。而PDO_MYSQL是PDO扩展中的一个驱动,专门用于与MySQL数据库进行交互。Magento是一款知名的开源电子商务...
在linux下是php支持使用PDO的方式访问mysql数据库的必要文件
标题中的"PDO_MYSQL-1.0.2.tgz"是一个特定版本的PHP扩展,PDO_MYSQL的1.0.2版本,它被压缩成一个tar.gz格式的文件。PDO_MYSQL是PHP的一个数据库访问接口,它允许PHP应用程序通过PHP Data Objects (PDO) API与MySQL...
在PHP开发中,PDO(PHP Data Objects)提供了一种标准的方法来连接多种数据库,包括MySQL。PDO具有许多优势,如预处理语句、事务支持和更好的错误处理机制。本篇文章将详细介绍如何创建一个封装良好的PDO连接MySQL的...
在PHP中使用PDO进行MySQL事务处理,通常包括以下几个步骤: 1. **关闭自动提交**:在开始事务之前,我们需要关闭自动提交模式,以确保所有操作作为一个单元执行。这可以通过设置`PDO::ATTR_AUTOCOMMIT`属性为0来...
讲述了PHP实现PDO的mysql数据库操作类,dbconfig类负责配置数据库访问信息,包括:服务器地址、端口、数据库实例名、用户名、用户密码、字符集等。 dbtemplate类集合了对数据库的访问操作,主要有以下几个操作: 1. ...
在本案例中,"pdo封装mysql类"指的是一个使用PDO扩展专门针对MySQL数据库进行操作的自定义PHP类。这个类可能包含了连接、查询、预处理语句、事务处理等常见数据库操作的功能。 在PHP中,封装MySQL类通常是为了方便...
一个PDO_MYSQL的类,简单的错误抛出,初始化,定义连接参数.这是一段公开的源代码,php PDO_Mysql类,方便转换数据库的时候不用修改所有的查询方式,这里是 通用的query,exec来查询和更新,删除,插入操作
讲述了PHP实现PDO的mysql数据库操作类,dbconfig类负责配置数据库访问信息,包括:服务器地址、端口、数据库实例名、用户名、用户密码、字符集等。 dbtemplate类集合了对数据库的访问操作,主要有以下几...
为了让数据类能够做到最大化的重用,就写个能够重用的PDO操作MySql的类,由于pdo可以连接现在流行的各种数据库,所以单独的写个配置类类来完成不同数据库DSN的配置,为了让代码重用,利用此类可以动态的连接各种数据库...
总的来说,这个PHP+MySQL+PDO文章管理系统是一个典型的Web开发实践,涵盖了后端逻辑、数据库交互和前端呈现等多个层面。通过学习和实践这个案例,开发者可以加深对PHP、PDO和MySQL的理解,提高自己的Web开发技能。...
为了让数据类能够做到最大化的重用,就写个能够重用的PDO操作MySql的类,由于pdo可以连接现在流行的各种数据库,所以单独的写个配置类类来完成不同数据库DSN的配置,为了让代码重用,利用此类可以动态的连接各种数据库...
标题中的“php用法PDO操作MySQL数据库实例”和描述中提到的内容主要涉及到使用PHP的PDO(PHP Data Objects)扩展来连接和操作MySQL数据库。PDO是一个轻量级且全面的数据库访问接口,它提供了数据访问抽象层,使得...
标题 "PHP-MySQL-PDO-Database-Class-master" 暗示了这是一个关于使用PHP与MySQL数据库交互的项目,特别强调了使用PDO(PHP Data Objects)扩展。PDO是PHP中的一个数据库访问层,提供了统一的API来连接多种数据库,...
标题中的"php使用PDO操作MySQL数据库实例"是指在PHP编程中使用PDO(PHP Data Objects)扩展来连接并操作MySQL数据库的实践案例。PDO是PHP提供的一种数据库访问接口,旨在为不同的数据库系统提供一个统一的访问方式,...
在本文中,我们将深入探讨如何在PHP8中使用PDO(PHP Data Objects)扩展与MySQL数据库进行交互。PHP8是PHP的最新版本,提供了许多性能优化和新特性,而PDO则是一个用于数据库访问的抽象层,它支持多种数据库系统,...
在PHP开发中,数据库操作是不可或缺的一部分,而PDO(PHP Data Objects)提供了一种安全、高效的方式来连接MySQL数据库并执行SQL语句。本教程将详细讲解如何使用PDO进行单次和多次的增删改查操作,并结合百度分页...