博客列表 >PHP PDO 数据查询、删除实例

PHP PDO 数据查询、删除实例

hanyufeng的博客
hanyufeng的博客原创
2018年01月06日 23:46:312198浏览

说明:

在“PHP MySQLi 增删查改(CURD)实例-面向对象方法”(http://hanyufeng.php.cn/blog/detail/2155)的基础上,改用PDO对象实现。

示例源码:

connetc.php

<?php
//使用配置文件保存参数
require 'config.php';
//使用PDO对象
$pdo = new PDO('mysql:dbname='. DB_NAME,DB_USER, DB_PASS);//host取默认值
//$pdo = new PDO('mysql:dbname='. DB_NAME.';charset=utf8',DB_USER, DB_PASS);
$pdo->query('set names utf8');//设置字符集编码,注意不要写成utf-8。也可以在实例化PDO对象时设置,如上一行。

list.php 查询数据

<?php
$pageTitle = '用户信息列表';
include  'inc/header.php';

//连接数据库
require 'inc/connect.php';

//查询用户信息表user
$sql = "SELECT `id`,`name`,`email` FROM user";  //创建查询语句
$rows = [];  //创建查询结果容器,初始为空数组,该数组最终会成为一个二维数组,与数组表对应
try
{
    $pdo_stmt = $pdo->query($sql);//查询
    if ($pdo_stmt->rowCount() > 0) {//如果数据不为空        
        $i =0;
        while ($row = $pdo_stmt->fetch()) { //从结果集的第一条记录开始抓取数据到绑定的变量中
            //继续沿用$rows数组保存数据,以便重复使用输出数据到页面的代码
            $rows[$i] = ['id'=>$row['id'],'name'=>$row['name'],'email'=>$row['email']];
            $i++;
        }
    }
    else
    {
        echo '<p style="color:red">当前表中没有数据~~</p>';
    }
} catch (PDOException $e) {
    echo '<p>查询失败:'.$e->getMessage().'</p>';
}
?>

delete.php

<?php
require 'inc/connect.php';

//先查询,再更新/删除,更完善更安全
$id = $_GET['id'];
$sql = "select * FROM user WHERE id=".$id;
$pdo_stmt = $pdo->query($sql);

if($pdo_stmt->rowCount() == 1){ //按id查询,如果存在,只应返回1条记录
    $row = $pdo_stmt->fetch();
    $sql = "DELETE FROM user WHERE id=". $row['id'];

    try {
        $affected_rows = $pdo->exec($sql);
        if($affected_rows == 1){
            echo '<script>alert("成功删除'.$affected_rows.'条记录")</script>';
        } else {
            echo '<script>alert("删除失败")</script>';
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }

}
else {
    echo '<p>要删除的记录不存在~~</p>';
}

要点:先查询,再更新/删除,是更完善更安全的处理方法。

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