PHP PDO MySQL
时间:2022-04-29
本文章向大家介绍PHP PDO MySQL,主要内容包括连接、exec()、query()、prepare() execute()、setAttribute() getAttribute()、quote()、rowCount()、预处理语句中的占位符、绑定参数到指定的变量、把一个值绑定到参数、绑定结果中的一列到一个 PHP 变量、其他、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
连接
// 数据源
$dsn='mysql:host=localhost;dbname=imooc';
// uri 形式
$dsn='uri:file://G:path'
...
$pdo=new PDO($dsn,$username,$password);
var_dump($pdo);
exec()
执行一条
SQL
语句,并返回其受影响的行数。对于select
没有作用。
- 创建表
- 插入记录
- 更新
- 删除
$query=<<<EOF
CREATE TABLE IF NOT EXISTS tablename(...)
EOF;
$res=$pdo->exec($query);
// 最后插入记录的 ID 号
$pdo->lastInsertId();
var_dump($res);
// 获取错误信息
$pdo->errorCode();
$pdo->errorInfo();
query()
查询,执行一条
SQL
语句,返回一个PDOStatement
对象
- 查询
- 插入
$sql='select * from tablename';
$stmt=$pdo->query($sql);
// 之后通过遍历数组,获取结果
prepare()
execute()
-
prepare()
准备要执行的SQL
语句,返回PDOStatement
对象 -
execute()
执行预处理过的语句
$stmt=$pdo->prepare($sql);
$stmt->execute(); // 返回布尔类型
$stmt->fetch(); // 返回关联 + 索引数组,得到结果集中一条记录
$stmt->fetch(PDO::FETCH_ASSOC); // 设置返回形式,只返回关联数组,失败返回 false
$stmt->setFetchMode(PDO::FETCH_ASSOC); // 设置返回形式,和上一种方法二选一
$stmt->fetchAll(); // 二维数组,返回所有数据,失败返回 false
setAttribute()
getAttribute()
设置,得到数据库连接属性
$pdo->getAttribute($attribute);
$pdo->setAttribute($attribute, $value);
quote()
返回带引号的字符串,防止 SQL 注入
$pdo->quote($usernmae);
rowCount()
-
select
操作,返回结果集中记录的条数 -
insert
update
delete
操作,返回受影响的记录的条数
$stmt->rowCount();
预处理语句中的占位符
也可以防止 SQL 注入
$sql='select * from tablename where username=:username';
// 通过 ? 占位
$sql='select * from tablename where username=?';
$stmt=$pdo->prepare($sql);
$stmt->execute([':username'=>$usernmae]);
// ? 占位
$stmt=execute([$username]);
绑定参数到指定的变量
bindParam()
$stmt->bindParam(':username',$username);
$username='usernmae';
$stmt->execute();
// ? 占位,索引从 1 开始
$stmt->bindParam(1,$username);
$stmt->execute();
把一个值绑定到参数
bindValue()
$username='username';
// ? 占位
$stmt->bindValue(1,$username);
绑定结果中的一列到一个 PHP 变量
bindColumn()
$stmt->execute();
$stmt->bindColumn(1,$username);
while ($stmt->fetch(PDO::FETCH_BOUND)) {
echo 'username:'.$username;
}
其他
-
columnCount()
返回结果集的列数 -
getColumnMeta()
返回结果集中一列的元数据,索引从 0 开始 -
fetchColumn()
从结果集中返回一列,索引从 0 开始 -
debugDumpParams()
打印预处理语句 -
nextRowset()
将结果集中的指针下移
- Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
- PyMC3和Theano代码构建贝叶斯深度网络,61页PPT探索贝叶斯深度学习以及实现
- 男程序员是不是都不会和女生表达交流?程序员的回答歪了
- Silverlight Telerik控件学习:主题Theme切换
- Silverlight自定义类库实现应用程序缓存
- Silverlight Telerik控件学习:TreeView数据绑定并初始化选中状态、PanelBar的Accordion效果、TabPanel、Frame基本使用
- 这或许是对小白最友好的python入门了吧——4,列表
- 每个人都应该知道的十个机器学习常识
- 重新带你了解React.js
- WebService又一个不爽的地方
- 劲爆!小程序又增新功能!为落地微信智慧零售方案做铺垫!
- 5G光传送网技术
- 突破封闭 Web 系统的技巧之正面冲锋
- 建立本地的Blast数据库
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解