博主信息
博文 49
粉丝 1
评论 0
访问量 53468
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
写出PDO操作数据库的基本步骤;制作一个学生数据库和学生信息表(写好PDO步骤后,添加好SQL语句模板,利用预处理方法进行数据库的增删改查工作)2019年6月5日20点
Nick的博客
原创
1426人浏览过

写PDO步骤:

datebase存储数据库信息:

实例

<?php

// 数据库连接参数
return [
    'type'=>'mysql',
    'host'=>'127.0.0.1',
    'dbname'=>'student',
    'username'=>'root',
    'password'=>'root'
];

运行实例 »

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


connect连接数据库:

实例

<?php
//数据库连接参数
$db = require 'database.php';

//配置数据源DSN信息
$dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";

//连接数据库
try {
    $pdo = new PDO($dsn, $db['username'],$db['password']);
}catch (PDOException $e) {
    die('Connection Failed:' . $e->getMessage());
}

//测试是否连接上数据库
//var_dump($pdo);

运行实例 »

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



在数据创建一个学生信息表:

实例

CREATE TABLE `student` (
  `id` int(5) unsigned NOT NULL COMMENT '学号' AUTO_INCREMENT PRIMARY KEY,
  `name` varchar(20) NOT NULL COMMENT '名字',
  `sex` char(2) NOT NULL COMMENT '性别',
  `age` char(3) NOT NULL COMMENT '年龄'
) ENGINE='InnoDB';

运行实例 »

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



利用预处理方法,设定好SQL模板,增加数据库信息:

实例

<?php
//新增记录
//1.连接数据库
require 'inc/connect.php';

//2.创建SQL语句模板
$sql = 'INSERT INTO `student` SET `name`= :name, `sex`= :sex, `age`= :age';

//3.创建SQL语句对象
$stmt = $pdo->prepare($sql);

//4.将变量绑定到SQL语句模板的命名占位符上
$name = 'Nick';
$sex = '男';
$age = '27';
$stmt->bindParam('name',$name,PDO::PARAM_STR);
$stmt->bindParam('sex',$sex,PDO::PARAM_STR);
$stmt->bindParam('age',$age,PDO::PARAM_INT);

//5.执行SQL操作
if ($stmt->execute()) {
    if ($stmt->rowCount() > 0) {
        echo '成功添加'. $stmt->rowCount() .'个学生,<br>学号是:'. $pdo->lastInsertId() . '<br>名字:' . $name . '<br>性别:' . $sex . '<br>年龄:' . $age;
    }
}else {
    die('<pre>' . print_r($stmt->errorInfo(), true));
}

//6.关闭数据库连接
$pdo = null;

运行实例 »

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


刷新网页4次(每刷新一次运行一次PHP代码),增加4个学生信息,在页面输出增加结果:

增加学生.png


利用预处理方法,设定好SQL模板,删除数据库信息:

实例

<?php
//删除记录
//1.连接数据库
require 'inc/connect.php';

//2.创建SQL语句模板
$sql = 'DELETE FROM `student` WHERE `id`=:id';

//3.创建SQL语句对象
$stmt = $pdo->prepare($sql);

//4.将变量绑定到SQL语句模板的命名占位符上
$id = 4;
$stmt->bindParam('id',$id,PDO::PARAM_INT);

//5.执行SQL操作
if ($stmt->execute()) {
    if ($stmt->rowCount() > 0) {
        echo '成功删除'. $stmt->rowCount() .'个学生信息';
    }
}else {
    die('<pre>'. print_r($stmt->errorInfo(),true));
}

//6.关闭数据库连接
$pdo = null;

运行实例 »

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


删除一个id为4的学生信息,在页面中显示:

删除学生信息.png



利用预处理方法,设定好SQL模板,修改数据库信息:

实例

<?php
//更新记录
//1.连接数据库
require 'inc/connect.php';

//2.创建SQL语句模板
$sql = 'UPDATE `student` SET `name`= :name, `sex`=:sex, `age`=:age WHERE `id`=:id';

//3.创建SQL语句对象
$stmt = $pdo->prepare($sql);

//4.将变量绑定到SQL语句模板的命名占位符上
$name = 'peter';
$sex = '男';
$age = 40;
$id = 2;
$stmt->bindParam('name',$name,PDO::PARAM_STR);
$stmt->bindParam('sex',$sex,PDO::PARAM_STR);
$stmt->bindParam('age',$age,PDO::PARAM_INT);
$stmt->bindParam('id',$id,PDO::PARAM_INT);

//5.执行SQL操作
if ($stmt->execute()) {
    if ($stmt->rowCount() > 0) {
        echo '成功更新'. $stmt->rowCount() .'个学生信息。<br>学号是:'. $pdo->lastInsertId() . '<br>名字:' . $name . '<br>性别:' . $sex . '<br>年龄:' . $age;
    }
}else {
    die('<pre>'. print_r($stmt->errorInfo(),true));
}

//6.关闭数据库连接
$pdo = null;

运行实例 »

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


修改id为2的学生信息,在数据库中查询student表:

查询student表.png




利用预处理方法,设定好SQL模板,查询数据库信息:

实例

<?php
//查询数据:用fetchAll();
//1.连接数据库
require 'inc/connect.php';

//2.创建SQL语句模板
$sql = 'SELECT * FROM `student`  WHERE `id`=:id';

//3.创建SQL语句对象
$stmt = $pdo->prepare($sql);

//4.将变量绑定到SQL语句模板的命名占位符上
$id = 3;
$stmt->bindParam('id',$id,PDO::PARAM_INT);

//5.执行SQL操作
$stmt->execute();

//6.遍历数据库数据,返回二维数组
$student = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($student as $students) {
    echo '<pre>'.print_r($students,true);
}

//7.关闭数据库连接
$pdo = null;

运行实例 »

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


查询student表中id为3的学生信息,在页面中输出数组

查找student表中的id为3的学生.png

批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学