PDO链接数据库,bindParam()/bindValue()的使用

原创 2018-12-03 18:06:13 291
摘要:1.参数绑定:bindParam()/bindValue()bindParam(:占位符,变量,类型常量),类型默认为字符串bindValue(:占位符,值或变量,类型常量),如果直接传值,可省略类型常量execute([:占位符=>值/变量]):将阐述以数组方式与SQL语句的占位符绑定2.列绑定 bindColumn('列名或索引',变量,变量类型,最大长度),如


1.参数绑定:bindParam()/bindValue()
bindParam(:占位符,变量,类型常量),类型默认为字符串
bindValue(:占位符,值或变量,类型常量),如果直接传值,可省略类型常量
execute([:占位符=>值/变量]):将阐述以数组方式与SQL语句的占位符绑定

2.列绑定

 bindColumn('列名或索引',变量,变量类型,最大长度),如果是字符串类型,应该指出最大长度进行预分配

<?php
$pdo = new PDO('mysql:dbname=user', 'root', '');
$sql = "SELECT `user_id`,`name`,`email`,`create_time` FROM `user` WHERE `status` = :status";
$stmt = $pdo->prepare($sql);
//参数绑定:bindParam()/bindValue()使用
$status = 1;
//$stmt->bindParam(':status',$status,PDO::PARAM_INT);
//bindValue和bindParam几乎一样,bindValue可以传值。
$stmt->bindValue(':status', 1, PDO::PARAM_INT);
$stmt->execute();
//2.列绑定bindColumn()
$stmt->bindColumn(1, $user_id, PDO::PARAM_INT);
$stmt->bindColumn(2, $name, PDO::PARAM_STR, 20);
$stmt->bindColumn(3, $email, PDO::PARAM_STR, 100);
$stmt->bindColumn(4, $create_time, PDO::PARAM_STR, 100);
$rows = [];
while ($stmt->fetch(PDO::FETCH_ASSOC)) {
    $rows[] = compact('user_id', 'name', 'email', 'create_time');
}
$stmt = null;
$pdo = null;
?>
<style>
    table {
        border-collapse: collapse;
        text-align: center;
        margin: 0 auto;
        box-shadow: 2px 2px 8px 2px rgba(0, 0, 0, 0.2);
    }

    table caption {
        font-size: 1.4rem;
        line-height: 2rem;
    }

    table tr:first-child {
        background: #999;
        color: #fff;
    }

    tr td {
        border: 1px solid #666;
        padding: 5px;
        width: 100px;
    }
</style>

<table>
    <caption>用户信息表</caption>
    <tr>
        <td>ID</td>
        <td>姓名</td>
        <td>邮箱</td>
        <td>创建时间</td>
    </tr>
    <?php foreach ($rows as $row) : ?>
        <tr>
            <td><?php echo $row['user_id'] ?></td>
            <td><?php echo $row['name'] ?></td>
            <td><?php echo $row['email'] ?></td>
            <td><?php echo date('Y/m/d', $row['create_time']) ?></td>
        </tr>
    <?php endforeach; ?>
    <!-- 不推荐 -->
    <?php
    foreach ($rows as $row) {
        echo "<tr>";
        echo '<td>' . $row['user_id'] . '</td>';
        echo '<td>' . $row['name'] . '</td>';
        echo '<td>' . $row['email'] . '</td>';
        echo '<td>' . date('Y/m/d', $row['create_time']) . '</td>';
        echo "</tr>";
    }
    ?>
</table>

2.png

MySQL   详细X

基本翻译

n. 数据库系统(一种免费的跨平台的)

网络释义

MySQL: 数据库

MySQL Workbench: MySQL Workbench

MySQL AB: MySQL AB

批改老师:天蓬老师批改时间:2018-12-03 18:07:30
老师总结:写得相当完整, 每提交一次作业 , 也是对自己的一个考验, 还有,在商业项目项目开发,这种绑定非常实用, 小项目,可以直接将参数传给execute()方法即可

发布手记

热门词条