Blogger Information
Blog 49
fans 1
comment 0
visits 45339
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
写出PDO操作数据库的基本步骤;制作一个学生数据库和学生信息表(写好PDO步骤后,添加好SQL语句模板,利用预处理方法进行数据库的增删改查工作)2019年6月5日20点
Nick的博客
Original
1250 people have browsed it

写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

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post