摘要:PDO查询中,2个绑定操作:参数绑定与列绑定;参数绑定:bindParm() 和 bindValue();bindParm(':占位符',变量,类型常量) 类型常量默认为字符串bindValue(':占位符',值或变量,类型常量) 如果直接传值,可省略类型常量execute([':占位符'=>值/变量]) :将参数以数组方
PDO查询中,2个绑定操作:参数绑定与列绑定;
参数绑定:bindParm() 和 bindValue();
bindParm(':占位符',变量,类型常量) 类型常量默认为字符串
bindValue(':占位符',值或变量,类型常量) 如果直接传值,可省略类型常量
execute([':占位符'=>值/变量]) :将参数以数组方式与SQL语句的占位符绑定
列绑定:
bindColumn('列名或索引',变量,变量类型,最大长度),如果是字符串类型,应该指出最大长度进行预分配
fetch() 与 while 解析遍历结果集
MySQL对游标查询支持不够完善,如果想在结果集中巡航,请把结果集解析到数组中进行<?php
// - 1 数据连接,创建PDO对象
$pdo = new ('mysql:host=127.0.0.1;dbname=php_edu;','root','root');
// - 2 执行预处理方法,创建预处理对象 STMT
// :status 命名占位符
$sql = "SELECT 'user_id','name','eamil' FROM 'user' WHERE 'status' =:status";
$stmt = $pdo->prepare($sql);
// - 3 执行
// 参数绑定
$status = 1;
// $stmt->bindParam(':status',$status,PDO::PARAM_INT);
// bindParm() 和 bindValue()基本等价,区别在于第二个参数。
// bindParm() 第二个参数只能传变量;
// bindValue() 第二个参数 既能传变量也能传值,其余再无区别;
$stmt->bindValue(':status',$status,PDO::PARAM_INT);
$stmt->execute();
// - 4 遍历结果集:通常用 foreach() 结构
$stmt ->bindColumn(1,$user_id,PDO::PARAM_INT);
$stmt ->bindColumn(2,$name,PDO::PARAM_STR,20);
$stmt ->bindColumn(3,$eamil,PDO::PARAM_STR,100);
$rows =[];
while ($row=$stmt->fetch(PDO::FETCH_BOUND)) {
echo $user_id,$eamil,$name,'
';
// 将变量转为数组;compact传值:传变量名组成的字符串
$rows [] = compact('user_id','name','eamil');
}
// - 5 释放结果集
$stmt = null;
// - 6 关闭连接
$pdo = null;
?>
批改老师:韦小宝批改时间:2018-11-03 14:06:03
老师总结:写的很棒!Pdo链接数据库还是很重要的!继续加油吧!看好你哦!