写PDO步骤:
datebase存储数据库信息:
实例
// 数据库连接参数
return [
'type'=>'mysql',
'host'=>'127.0.0.1',
'dbname'=>'student',
'username'=>'root',
'password'=>'root'
];
运行实例 »
点击 "运行实例" 按钮查看在线实例
connect连接数据库:
实例
//数据库连接参数
$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模板,增加数据库信息:
实例
//新增记录
//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() .'个学生,
学号是:'. $pdo->lastInsertId() . '
名字:' . $name . '
性别:' . $sex . '
年龄:' . $age;
}
}else {
die('
' . print_r($stmt->errorInfo(), true));
}
//6.关闭数据库连接
$pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
刷新网页4次(每刷新一次运行一次PHP代码),增加4个学生信息,在页面输出增加结果:
利用预处理方法,设定好SQL模板,删除数据库信息:
实例
//删除记录
//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('
'. print_r($stmt->errorInfo(),true));
}
//6.关闭数据库连接
$pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
删除一个id为4的学生信息,在页面中显示:
利用预处理方法,设定好SQL模板,修改数据库信息:
实例
//更新记录
//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() .'个学生信息。
学号是:'. $pdo->lastInsertId() . '
名字:' . $name . '
性别:' . $sex . '
年龄:' . $age;
}
}else {
die('
'. print_r($stmt->errorInfo(),true));
}
//6.关闭数据库连接
$pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
修改id为2的学生信息,在数据库中查询student表:
利用预处理方法,设定好SQL模板,查询数据库信息:
实例
//查询数据:用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 '
'.print_r($students,true);
}
//7.关闭数据库连接
$pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
查询student表中id为3的学生信息,在页面中输出数组