PDO

本章节列出截至PHP 7.3.6所有的PDO类函数以供参考。

下表以相关性排序。

方法名 描述
__construct() 创建一个数据库连接的PDO实例
getAvailableDrivers() 返回一个当前环境可用数据库驱动列表
setAttribute() 为数据库连接句柄设置通用属性
getAttribute() 获取一个数据库连接的指定属性的值
quote() 为 SQL 查询字符串中需要的部分添加引号,并对特殊字符进行转义
query() 执行一条 SQL 语句,并返回一个PDOStatement对象形式的结果集
exec() 执行一条非查询类 SQL 语句,并返回受影响的行数
lastInsertId() 返回最后一次插入行的 ID 或序列值
prepare() 对待执行的 SQL 语句进行预处理,并返回该 SQL 语句的语句对象PDOStatement
beginTransaction() 声明数据库启动一个事务(Transactions)
inTransaction() 检查数据库驱动是否存在一个尚未提交(已激活)的事务
commit() 提交一个事务。同时数据库驱动返回到“自动提交”状态,直至开启下一次事务
rollBack() 回滚一个事务(即撤销事务所做的一切改变,隐式自动提交的 DLL 类语句无法回滚)
errorCode() 获取数据库上一次操作的错误码
errorInfo() 获取与数据库最后一次操作有关的错误信息

本参考手册的格式说明:

  • 函数名
  • 定义
  • 语法
    • 函数名
    • 参数列表:参数列表中,变量名前是该变量的数据类型,其中特殊的mixed表示有多种可能的数据类型;使用方括号包裹的参数表示可选
    • 返回类型:冒号后面是函数的标准返回类型
  • 参数说明
  • 示例
  • 延展阅读
    • 与当前函数具有相关性、相似性的函数

注:本章节示例依赖数据库与服务器环境,请先根据之前的环境搭建教程搭建好自己的环境!

前期准备

  • 数据库配置

    • 本教程所涉及数据库驱动一律为 MySQL 5.7+
    • MySQL 用户名:root
    • MySQL 密码:mysql
    • 使用数据库:test
  • 涉及数据表(如果没有可运行下列 SQL 语句):

    • movie
      CREATE TABLE `movie` (
        `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '豆瓣高分电影',
        `name` varchar(60) COLLATE utf8mb4_bin NOT NULL COMMENT '电影名称',
        `rate` float(2,1) unsigned NOT NULL DEFAULT '0.0' COMMENT '豆瓣评分',
        `url` varchar(150) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '电影豆瓣网址',
        `cover` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '封面图片',
        `cover_x` int(255) unsigned NOT NULL DEFAULT '0' COMMENT '封面横向尺寸',
        `cover_y` int(255) unsigned NOT NULL DEFAULT '0' COMMENT '封面纵向尺寸',
        PRIMARY KEY (`id`),
        KEY `i_name` (`name`),
        KEY `i_rate` (`rate`)
      ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='电影';
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (1, '哪吒之魔童降世', 8.5, 'https://movie.douban.com/subject/26794435/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2563780504.jpg', 5594, 8268);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (2, '我不是药神', 9.0, 'https://movie.douban.com/subject/26752088/', 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2561305376.jpg', 2810, 3937);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (3, '续命之徒:绝命毒师电影', 8.3, 'https://movie.douban.com/subject/30372377/', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2569548689.jpg', 1500, 2222);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (4, '肖申克的救赎', 9.7, 'https://movie.douban.com/subject/1292052/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.jpg', 2000, 2963);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (5, '这个杀手不太冷', 9.4, 'https://movie.douban.com/subject/1295644/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p511118051.jpg', 658, 980);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (6, '绿皮书', 8.9, 'https://movie.douban.com/subject/27060077/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2549177902.jpg', 2000, 3167);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (7, '摔跤吧!爸爸', 9.0, 'https://movie.douban.com/subject/26387939/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2457983084.jpg', 4500, 6300);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (8, '千与千寻', 9.3, 'https://movie.douban.com/subject/1291561/', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2557573348.jpg', 1080, 1560);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (9, '疯狂动物城', 9.2, 'https://movie.douban.com/subject/25662329/', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2315672647.jpg', 1418, 2005);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (10, '泰坦尼克号', 9.4, 'https://movie.douban.com/subject/1292722/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p457760035.jpg', 2015, 3000);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (11, '阿甘正传', 9.5, 'https://movie.douban.com/subject/1292720/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559011361.jpg', 2445, 3229);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (12, '霸王别姬', 9.6, 'https://movie.douban.com/subject/1291546/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2561716440.jpg', 600, 889);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (13, '寻梦环游记', 9.0, 'https://movie.douban.com/subject/20495023/', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2503997609.jpg', 1432, 2048);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (14, '复仇者联盟4:终局之战', 8.5, 'https://movie.douban.com/subject/26100958/', 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2552058346.jpg', 3000, 4440);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (15, '复仇者联盟3:无限战争', 8.1, 'https://movie.douban.com/subject/24773958/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2517753454.jpg', 1968, 2756);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (16, '头号玩家', 8.7, 'https://movie.douban.com/subject/4920389/', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2516578307.jpg', 2000, 3000);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (17, '无名之辈', 8.1, 'https://movie.douban.com/subject/27110296/', 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2539661066.jpg', 1429, 2000);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (18, '盗梦空间', 9.3, 'https://movie.douban.com/subject/3541415/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p513344864.jpg', 2229, 3300);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (19, '你的名字。', 8.4, 'https://movie.douban.com/subject/26683290/', 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2395733377.jpg', 1428, 2000);
      INSERT INTO `movie`(`id`, `name`, `rate`, `url`, `cover`, `cover_x`, `cover_y`) VALUES (20, '三傻大闹宝莱坞', 9.2, 'https://movie.douban.com/subject/3793023/', 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p579729551.jpg', 3030, 4364);