这篇文章主要介绍了关于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);

相关推荐:

php mysql 替换 pdo,php操作MySQL数据库之PDO方式相关推荐

  1. ruby mysql 占位符_ruby操作常用数据库

    使用Ruby DBI模块 目录 Ruby DBI模块为ruby程序访问数据库提供了一个与数据库无关的接口,就像perl的DBI模块一样.这篇文章将讲述如何编写基于DBI的ruby程序.这篇文章是对DB ...

  2. mysql怎么防止误操作_MySQL数据库防止人为误操作的实例讲解

    有不少开发人员在操作MySQL数据库的时候都遇到过误操作的情况,例如更新数据库的时候update语句忘记加上where条件,就会造成极为悲剧的结果.本文就针对防止MySQL数据库误操作的方法做出如下详 ...

  3. mysql一些基本sql操作_MySql数据库的一些基本操作---------------SQL语法

    MySql数据库是比较常用的关系型数据库,操作用的是sql语句,下面来说一说MySql的一些基本操作 MySql数据库是一种C/S型的模式,即客户端/服务器端,对应到具体应用上,便是bin目录下的my ...

  4. mysql jdbc实例_jdbc操作mysql数据库实例

    本文实例讲述了jdbc操作mysql数据库的方法.分享给大家供大家参考.具体如下: import java.sql.*; import java.sql.DriverManager; import j ...

  5. mysql flaskalchemy_Flask使用Flask-SQLAlchemy操作MySQL数据库

    前言: Flask-SQLAlchemy是一个Flask扩展,简化了在Flask程序中使用SQLAlchemy的操作.SQLAlchemy是一个很强大的关系型数据库框架,支持多种数据库后台.SQLAl ...

  6. android查询mysql并显示_Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解...

    本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录 ...

  7. pymysql mysql 1064_python使用pymysql操作MySQL错误代码1054和1064处理

    Python使用pymysql操作MySQL错误代码1054和1064处理 错误代码1064处理 错误代码1054处理 最近在学习用Python爬虫,需要用到mysql来存储从网络上爬到的数据, 这里 ...

  8. python往mysql存入数据_Python操作mysql之插入数据

    之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 相关mysql视频教程推荐:<mysql教程> 先建库,建表,建用户mysql> ...

  9. golang MySQL 占内存_golang操作mysql使用总结

    前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...

最新文章

  1. 洛谷 3029 [USACO11NOV]牛的阵容Cow Lineup
  2. 修改选择文件按钮,变成自己设置的样式
  3. javascript之prototype原型属性案例
  4. fedora12下pppoe服务器的搭建
  5. python代码设计测试用例_Python单元测试与测试用例简析
  6. Message Flood
  7. iBATIS In Action:什么是iBATIS(二)
  8. c++ vector排序_个性化推荐系统源代码之基于LR模型的推荐系统离线排序方案
  9. oracle学用命令大全 笔记
  10. POJ 3621:Sightseeing Cows(最优比率环)
  11. windowsC盘msp文件清理
  12. TiledMap使用笔记
  13. object-c的静态变量(static)
  14. utc时间 单位换算_utc时间(utc时间转换北京时间)
  15. 【转】一个时代的剪影----汉
  16. java 实现pdf转换成图片
  17. 非宁静无以致远 非淡泊无以明志
  18. python装饰图解_Python装饰器(Decorate)使用图解
  19. k8s 拉取镜像失败_kubernetes k8s.gcr.io拉取镜像失败问题
  20. Rockchip DRM RK628 Porting Guide

热门文章

  1. (一)Neo4j在Centos7虚拟机上的安装
  2. java maximumpoolsize,如果maximumPoolSize小于corePoolSize怎么办? Java 6中可能存在的错误?...
  3. 【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库
  4. canvas合成图片 圣诞节新技能戴帽
  5. 201521123014 《Java程序设计》第8周学习总结
  6. BIEE 目录迁移(文件夹)方式
  7. 阻止页面双击选中文本
  8. codevs1040 统计单词个数
  9. [原]2011年度生活三层总结
  10. 动态规划——变形的杨辉三角形