博客列表 >利用PDO的预处理操作mysql数据库,进行简单的数据读取、更新及删除——2018年4月25日

利用PDO的预处理操作mysql数据库,进行简单的数据读取、更新及删除——2018年4月25日

JackBlog
JackBlog原创
2018年04月25日 23:19:541115浏览


知识点:


PDO::prepare — 备要执行的SQL语句并返回一个 PDOStatement 对象

PDO::errorCode — 获取跟数据库句柄上一次操作相关的 SQLSTATE

PDO::errorInfo — 返回最后一次操作数据库的错误信息

PDOStatement::bindColumn — 绑定一列到一个 PHP 变量

PDOStatement::bindParam — 绑定一个参数到指定的变量名

PDOStatement::bindValue — 把一个值绑定到一个参数

PDOStatement::closeCursor — 关闭游标,使语句能再次被执行。

PDOStatement::columnCount — 返回结果集中的列数

PDOStatement::debugDumpParams — 打印一条 SQL 预处理命令

PDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLSTATE

PDOStatement::errorInfo — 获取跟上一次语句句柄操作相关的扩展错误信息

PDOStatement::execute — 执行一条预处理语句

PDOStatement::fetch — 从结果集中获取下一行

PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组

PDOStatement::fetchColumn — 从结果集中的下一行返回单独的一列。

PDOStatement::fetchObject — 获取下一行并作为一个对象返回。

PDOStatement::getAttribute — 检索一个语句属性

PDOStatement::getColumnMeta — 返回结果集中一列的元数据

PDOStatement::nextRowset — 在一个多行集语句句柄中推进到下一个行集

PDOStatement::rowCount — 返回受上一个 SQL 语句影响的行数

PDOStatement::setAttribute — 设置一个语句属性

PDOStatement::setFetchMode — 为语句设置默认的获取模式。

GIF.gif


index.php实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style type="text/css">
        .table_user{
            margin: auto;
        }
        table{
            width: 1000px;
            margin: auto;
            text-align: center;
        }
        table td:first-child{
            width: 60px;
        }
        table tr td a{
            text-decoration: none;
            color: #ae1108;
        }
    </style>
</head>
<body>
<div class="table_user">
<table border="1" cellspacing="0" cellpadding="10">
    <caption><h2>会员信息表</h2></caption>
    <tr>
        <th>会员ID</th>
        <th>账号</th>
        <th>密码</th>
        <th>性别</th>
        <th>金币</th>
        <th>积分</th>
        <th>操作</th>
    </tr>
<?php

$pdo = new PDO('mysql:dbname=xy28','xy28','123456');
$sql = 'SELECT * FROM t_user where id>:id';
$stmt =$pdo->prepare($sql);

$data = ['id'=>0];
$stmt->execute($data);
if ($stmt->rowCount()>0) {
    $res = $stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($res as $val) {
        echo '<tr>';
        echo '<td>' . $val['id'] . '</td>';
        echo '<td>' . $val['username'] . '</td>';
        echo '<td>' . $val['password'] . '</td>';
        echo '<td>' . $val['sex'] . '</td>';
        echo '<td>' . $val['jb'] . '</td>';
        echo '<td>' . $val['jf'] . '</td>';
        echo '<td><a href="update.php?action=update&id='.$val['id'].'">重置密码</a>  <a href="delete.php?action=delete&id='.$val['id'].'">删除</a></td>';
        echo '</tr>';
    }
}
?>

</table>
</div>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


update.php实例

<?php
/*
 *PDO预处理用的是PDOStatement对象
 * pdo->prepare
 */
if ($_GET['action']=='update'){
    $id = $_GET['id'];
    $pass = rand(111111,999999);
    update($id,$pass);
}




function update($id,$pass){
    //连接数据库
    $pdo = new PDO('mysql:dbname=xy28','xy28','123456');
//准备sql
    $sql = 'UPDATE t_user SET password=sha1(:pass) where id=:id';
//创建预处理对象
    $stmt=$pdo->prepare($sql);
//绑定变量到预处理对象
    $data =['pass'=>$pass,'id'=>$id];
//执行sql
    if ($stmt->execute($data)){
//    成功返回受影响的记录数。

        echo "<script>alert(\"会员id:$id 密码重置成功,请记住新密码:$pass\")</script>";
        header("refresh:0;url=select.php");

    }
    $pdo=null;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


delete.php实例

<?php
/*
 *PDO预处理用的是PDOStatement对象
 * pdo->prepare
 */
if ($_GET['action']=='delete'){
    $id = $_GET['id'];
    delete($id);
}



function delete($id){
    //连接数据库
    $pdo = new PDO('mysql:dbname=xy28','xy28','123456');
//准备sql
    $sql = 'delete from t_user  where id=:id';
//创建预处理对象
    $stmt=$pdo->prepare($sql);
//绑定变量到预处理对象
    $data =['id'=>$id];
//执行sql
    if ($stmt->execute($data)){
//    成功返回受影响的记录数。
        echo "<script>alert(\"会员id:$id 删除成功\")</script>";
        header("refresh:0;url=select.php");
    }
    $pdo=null;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议