php数据库pdo,php操作MySQL数据库之PDO方式

5268f80b9b1e01f982625ef6fac83ca1.png

这篇文章主要介绍了关于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,结果变成关联数组。

实例<?php

// PDO操作数据库例子(查询)

header("content-type:text/html;charset=utf-8");

// 连接数据库

$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,'root','123456789');

/*********** 执行SQL语句 *************/

// 设置字符集

$pdo -> 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)

实例<?php

header("content-type:text/html;charset=utf-8");

// 连接数据库

$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,'root','123456789');

// 执行SQL语句

// 设置字符集

$pdo -> 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,结果变成关联数组。

实例<?php

// MySQLi预处理控制例子(查询)

header("content-type:text/html;charset=utf-8");

// 连接数据库

$dsn = "mysql:host=localhost; dbname=test";

$pdo = new PDO($dsn,'root','123456789');

// 设置字符集

$pdo -> 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方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值