格式化输出数据表中的数据

原创2019-01-13 16:21:17149
摘要:<?php /**  * PDO查询操作(二)  * 参数绑定:bindParm()和bindValue  * fetch()与while解析遍历结果集  * MySql对游标查询支持不够完善,如果想在结果集中循环,请把结果集解析到数组中进行  */ //连接数据库 $pdo = 
<?php
/**
 * PDO查询操作(二)
 * 参数绑定:bindParm()和bindValue
 * fetch()与while解析遍历结果集
 * MySql对游标查询支持不够完善,如果想在结果集中循环,请把结果集解析到数组中进行
 */

//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php_edu','root','root');

//准备sql 并创建预处理对象
$sql = "SELECT `user_id`,`name`,`sex`,`email`,`create_time` FROM `user` WHERE `status` = :status;";

$stmt = $pdo->prepare($sql);

//执行
$stmt->execute([':status'=>1]);


//遍历
$rows = [];
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    $rows[] = $row;
}

$pdo = null;
$stmt=null;
?>
<style>
    table{ border: 1px solid #ddd; border-collapse: collapse}
    table,th,td {
        border: 1px solid #333;
    }
</style>
<table>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>性别</th>
        <th>邮箱</th>
        <th>注册时间</th>
    </tr>
    <?php foreach ($rows as $row) : ?>
    <tr>
        <td><?php echo $row['user_id'] ?></td>
        <td><?php echo $row['name'] ?></td>
        <td><?php if($row['sex']=='0')echo '男'; else echo '女'; ?></td>
        <td><?php echo $row['email'] ?></td>
        <td><?php echo date('Y-m-d',$row['create_time']) ?></td>
    </tr>
    <?php endforeach; ?>
</table>

参数绑定与列绑定输出:

<?php
/**
 * PDO查询中的2个绑定操作:参数绑定与列绑定
 * 参数绑定:
 * bindParam(':占位符',变量,类型常量),类型常量默认为字符串
 * bindValue(':占位符',值或变量,类型常量)如果直接传值,可省略类型常量;
 * execute([':占位符'=>值/变量]):将参数以数组方式与SQL语句的占位符绑定
 * 列绑定:
 * bindColumn('列名或索引',变量,变量类型,最大长度),如果是字符串类型,应该指出最大长度进行预分配
 */

//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php_edu','root','root');

//准备sql域名并预处理
$sql = "SELECT `user_id`,`name`,`email`,`sex`,`create_time` FROM `user` WHERE `status` = :status;";

$stmt = $pdo->prepare($sql);

//执行
//bindParam(),绑定一个参数(sql中的占位符)到指定的变量,注意必须是变量,并且该变量是引用类型
$status = 1;
$stmt->bindParam(':status',$status,PDO::PARAM_INT);
$stmt->execute();

//遍历
//列绑定
$stmt->bindColumn('user_id',$id,PDO::PARAM_INT);
$stmt->bindColumn('name',$name,PDO::PARAM_STR,20);
$stmt->bindColumn('email',$email,PDO::PARAM_STR,100);
$stmt->bindColumn('create_time',$ctime,PDO::PARAM_STR,100);

while($stmt->fetch(PDO::FETCH_BOUND)){
    $rows[] = compact('id','name','email','ctime');
}
//关闭
$pdo = null;
$stmt=null;
?>
<style>
    table{ border: 1px solid #ddd; border-collapse: collapse}
    table,th,td {
        border: 1px solid #333;
    }
</style>
<table>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>邮箱</th>
        <th>注册时间</th>
    </tr>
    <?php foreach ($rows as $row) : ?>
    <tr>
        <td><?php echo $row['id'] ?></td>
        <td><?php echo $row['name'] ?></td>
        <td><?php echo $row['email'] ?></td>
        <td><?php echo date('Y-m-d',$row['ctime']) ?></td>
    </tr>
    <?php endforeach; ?>
</table>


批改老师:天蓬老师批改时间:2019-01-13 17:08:01
老师总结:pdo中的数据绑定一直是个重点, 也是一个难点, 其实从表中获取的数据就是字段段, 绑定有二个方向 , 读操作就是把结果列绑定到变量上, 写操作就是把数据绑定到变量上, 这样想就简单多了, 对不对?

发布手记

热门词条