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);