Home Backend Development PHP Tutorial Simple use of PHP PDO

Simple use of PHP PDO

Nov 11, 2016 pm 01:27 PM
exec() php transaction

Php code

PHP Simple use of PDO (query(), exec(), prepare(), Transaction, row lock)

<?php  
            #数据库连接  
            $dbtype = &#39;mysql&#39;;  
            $host = &#39;localhost&#39;;  
            $db = &#39;test&#39;;  
            $user = &#39;root&#39;;  
            $psw = &#39;19sucai&#39;;  
              
            $dsn = $dbtype . &#39;:host=&#39; . $host . &#39;;&#39; . &#39;dbname=&#39; . $db;  
              
            try {  
                $dbh = new PDO($dsn, $user, $psw, array(PDO::ATTR_PERSISTENT=>true));  
                echo &#39;连接成功<br>&#39;;  
            } catch(Exception $e) {  
                die(&#39;Connect Failed Message: &#39; . $e->getMessage());  
            }  
              
            #使用query函数查询  
            $sql = &#39;SELECT * FROM user&#39;;  
            $query = $dbh->query($sql);  
            $query->setFetchMode(PDO::FETCH_ASSOC);    //设置结果集返回格式,此处为关联数组,即不包含index下标  
            $rs = $query->fetchAll();  
            var_dump($rs);  
              
            #使用exec函数进行INSERT,UPDATE,DELETE,结果返回受影响的行数  
            $sql = &#39;INSERT INTO user (`userName`, `userPassword`, `userAge`) SELECT (MAX(userId) + 1), \&#39;123456\&#39;, 18 FROM user&#39;;    //插入一行用户数据,其中userName使用userId最大值+1  
            // $rs = $dbh->exec($sql);  
            // var_dump($rs) . &#39;<br>&#39;;  
              
            #使用prepareStatement进行CURD  
            $sql = &#39;SELECT * FROM user WHERE userId = ?&#39;;  
            $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 = &#39;SELECT bookNum FROM book WHERE bookId = ? FOR UPDATE&#39;;    //此处加上行锁,可以对bookNum做一些判断,bookNum>1,才做下一步更新操作  
                $sql2 = &#39;UPDATE book SET bookNum=bookNum-1 WHERE bookId = ?&#39;;    //加上行锁后,如果user1在买书,并且user1的买书过程没有结束,user2就不能执行SELECT查询书籍数量的操作,这样就保证了不会出现只有1本书,却两个人同时买的状况  
                $stmt1 = $dbh->prepare($sql1);  
                $stmt2 = $dbh->prepare($sql2);  
                $stmt1->bindParam(1, $userId);  
                $stmt2->bindParam(1, $userId);  
                $userId = 1;  
                $stmt1->execute();  
                $stmt2->execute();  
                $dbh->commit();  
            } catch(Exception $e) {  
                $dbh->rollBack();  
                die(&#39;Transaction Error Message: &#39; . $e->getMessage());  
            }  
?>
Copy after login


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

CakePHP Logging CakePHP Logging Sep 10, 2024 pm 05:26 PM

Logging in CakePHP is a very easy task. You just have to use one function. You can log errors, exceptions, user activities, action taken by users, for any background process like cronjob. Logging data in CakePHP is easy. The log() function is provide

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.

See all articles