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()
将结果集中的指针下移
- 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 实例讲解
- 详解Linux内核进程调度函数schedule()的触发和执行时机
- Linux下使用SSH远程执行命令方法收集
- 详解Centos7.2编译安装zabbix3.2(详细步骤)
- Linux下误删messages文件的找回方法
- 自制YUM仓库的步骤讲解
- 解决centos7中tomcat启动与本机访问问题
- centos6.5配置ssh免秘钥登陆执行pssh命令的讲解
- 使用PXE自动安装CentOS7.6的教程详解
- Ubuntu环境下SSH的安装及使用详解
- CentOS8 网卡配置文件
- Linux加载vmlinux调试
- Linux 中删除文本中的回车字符的方法
- 详解Linux下出现permission denied的解决办法
- Linux在丢失的情况下重置密码的教程
- Linux内核宏container_of的深度剖析