• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP PDO的简单使用

php 搞代码 3年前 (2022-01-23) 19次浏览 已收录 0个评论

Php代码

PHP PDO的简单使用(query(),exec(),prepare(),Transaction,行锁)

<?php              #数据库连接              $dbtype = 'mysql';              $host = 'localhost';              $db = 'test';              $user = 'root';              $psw = '19sucai';                            $dsn = $dbtype . ':host=' . $host . &<p>5本文来源gao!daima.com搞$代!码#网#</p><pre>搞代gaodaima码

#39;;' . 'dbname=' . $db; try { $dbh = new PDO($dsn, $user, $psw, array(PDO::ATTR_PERSISTENT=>true)); echo '连接成功
'; } 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) . '
'; #使用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); $stmt2->bindParam(1, $userId); $userId = 1; $stmt1->execute(); $stmt2->execute(); $dbh->commit(); } catch(Exception $e) { $dbh->rollBack(); die('Transaction Error Message: ' . $e->getMessage()); } ?>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP PDO的简单使用
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址