php操作MySQL数据库之PDO方式

不言
풀어 주다: 2023-03-29 21:52:02
원래의
1393명이 탐색했습니다.

这篇文章主要介绍了关于php操作MySQL数据库之PDO方式 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

基本使用

1)连接数据库

$pdo = new PDO(“mysql:host=localhost; dbname=db_name”,username,password);
로그인 후 복사

2)执行SQL语句

$pdo -> query() 针对返回有结果的操作 适用于SELECT $pdo -> exec() 针对没有返回结果的操作 适用于增删改
로그인 후 복사

3)获取结果集(查询操作专有)

$stmt -> fetch($mode) 获取一条数据 $stmt -> fetchAll($mode) 获取所有数据
로그인 후 복사

mode可选择 PDO::FETCH_ASSOC,结果变成关联数组

实例

 exec("set names utf8"); $sql = "SELECT * FROM users"; $stmt = $pdo -> query($sql); // 获取结果集 $data = $stmt -> fetchAll(PDO::FETCH_ASSOC); var_dump($data);
로그인 후 복사

事务控制

1)开启事务

$pdo -> beginTransaction()
로그인 후 복사

2)事务回滚

$pdo -> rollback()
로그인 후 복사

3)事务提交

$pdo -> commit()
로그인 후 복사

4)自动提交

$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1)
로그인 후 복사

实例

         exec("set names utf8"); // 开启事务 $pdo -> beginTransaction(); // SQL语句 $sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1 "; $r1 = $pdo -> exec($sql1); $sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 12 "; $r2 = $pdo -> exec($sql2); // 做判断 if($r1 > 0 && $r2 > 0){ $pdo -> commit(); echo '操作成功'; }else{ $pdo -> rollback(); echo '操作失败'; } $pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,1);
로그인 후 복사

预处理

1)$sql = “???”

SQL语句的VALUE里面的参数,使用问号代替。

2)创建预编译对象

$pdo -> prepare($sql)
로그인 후 복사

3)参数赋值

$stmt -> bindParam(参数位置 | 参数伪名, 变量名(需要有值)) $stmt -> bindValue(参数参数位置 | 参数伪名, 变量名(需要有值)| 具体的值)
로그인 후 복사

$stmt -> bindParam详解:

$sql = "UPDATE users SET `money`=100 WHERE id = :num "; // 注意,这里必须先给$num赋值 $num = 3; $stmt -> bindParam(":num",$num); 另一种形式(占位符变成问号) $sql = "UPDATE users SET `money`=100 WHERE id = ? "; // 注意,这里必须先给$num赋值 $num = 3; $stmt -> bindParam(":num",$num);
로그인 후 복사

$stmt -> bindValue详解

在使用bindValue绑定变量后,即使在执行execute之前改变了该变量的值,那么结果也不会变。

详细请看这里这里写链接内容

4)执行代码

$stmt -> execute()
로그인 후 복사

5)获取结果(查询操作专有)

$stmt -> fetch($mode) 获取一个结果 $stmt -> fetchAll($mode) 获取所有结果
로그인 후 복사

mode可选择 PDO::FETCH_ASSOC,结果变成关联数组

实例

         exec("set names utf8"); // SQL语句 $sql = "SELECT * FROM users WHERE id > :num "; // 创建预编译对象 $stmt = $pdo -> prepare($sql); // 参数绑定 $num = 3; $stmt -> bindParam(":num",$num); // 执行SQL语句 $stmt -> execute(); // 获取结果集 $data = $stmt -> fetchAll(PDO::FETCH_ASSOC); var_dump($data);
로그인 후 복사

相关推荐:

操作MySQL数据库之MySQLI方式

위 내용은 php操作MySQL数据库之PDO方式의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!