批改状态:未批改
老师批语:
写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个学生信息,在页面输出增加结果:

利用预处理方法,设定好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的学生信息,在页面中显示:

利用预处理方法,设定好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表:

利用预处理方法,设定好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的学生信息,在页面中输出数组

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