批改状态:合格
老师批语:代码写得非常的规范, 并没有用到简化的方案, 坚持
一.CURD语句基本语法
增: INSERT INTO `表名` (1字段1`,`字段2`......) VALUES("值1","值2"......);
删: DELETE FROM `表名` WHERE 条件
改: UPDATE `表名` SET `字段1`="值1",`字段2`="值2"... WHERE 条件
查: SELECT `字段列表` FROM `表名` WHERE 条件
二.PDO操作数据库
PDO操作数据库大概可分为6步骤
连接数据库
创建sql语句模板
创建sql语句对象-预处理对象
为sql语句模板中的变量赋值
执行sql语句
关闭连接
数据库连接部分
<?php
$db=require 'database.php';
$dsn="{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
$username="{$db['username']}";
$password="{$db['password']}";
try{
$pdo=new PDO($dsn,$username,$password);
}catch (PDOException $e){
die("连接失败".$e->getMessage());
}点击 "运行实例" 按钮查看在线实例
<?php return [ 'type' => 'mysql', 'host' => '127.0.0.1', 'dbname' => 'php', 'username' => 'root', 'password' => 'root' ];
点击 "运行实例" 按钮查看在线实例
1)insert
<?php
//1.连接数据库
require __DIR__."/connect.php";
//2.创建sql语句模板
$sql='INSERT INTO `category` SET `name`=:name,`alias`=:alias';
//3.创建sql语句对象:预处理对象
$stmt=$pdo->prepare($sql);
//4.为sql语句模板中的变量赋值
$name='zn';
$alias='宅男福利';
$stmt->bindParam(':name',$name,PDO::PARAM_STR);
$stmt->bindParam(':alias',$alias,PDO::PARAM_STR);
//5.执行sql语句
if($stmt->execute()){
//$stmt->rowCount返回受影响的行数
if($stmt->rowCount()>0){
echo '成功的添加' . $stmt->rowCount(). '条记录, 主键:'. $pdo->lastInsertId();
}
}else{
dir("<pre>".print_r($stmt->errorInfo(),true));
}
//关闭连接
$pdo=null;点击 "运行实例" 按钮查看在线实例

我们查看数据库

2)delete
<?php
//1.连接数据库
require __DIR__."/connect.php";
//2.创建sql语句模板
$sql = 'DELETE FROM `category` WHERE `cate_id`=:cate_id';
//3.创建sql语句对象:预处理对象
$stmt=$pdo->prepare($sql);
//4.为sql语句模板中的变量赋值
$cate_id=11;
$stmt->bindParam(':cate_id', $cate_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;点击 "运行实例" 按钮查看在线实例

我们查看数据库

3)update
<?php
//1.连接数据库
require __DIR__."/connect.php";
//2.创建sql语句模板
$sql = 'UPDATE `category` SET `name` = :name, `alias` = :alias WHERE `cate_id`=:cate_id';
//3.创建sql语句对象:预处理对象
$stmt=$pdo->prepare($sql);
//4.为sql语句模板中的变量赋值
$name='xjj';
$alias='小姐姐';
$cate_id=5;
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':alias', $alias, PDO::PARAM_STR);
$stmt->bindParam(':cate_id', $cate_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;点击 "运行实例" 按钮查看在线实例


4)select
<?php
//1.连接数据库
require __DIR__.'/connect.php';
//2.创建sql语句模板
$sql='SELECT * FROM `movies` WHERE `cate_id`=:cate_id';
//3.创建sql语句对象:预处理对象
$stmt=$pdo->prepare($sql);
//4.绑定变量
$cate_id=2;
$stmt->bindParam(':cate_id',$cate_id,PDO::PARAM_INT);
//5.执行sql语句
$stmt->execute();
//PDO::FETCH_ASSOC 获取模式
/*
//fetch 每次取一行数据 指针下移一位
while($movies=$stmt->fetch(PDO::FETCH_ASSOC)){
echo "<pre>".print_r($movies,true);
}
*/
/*
//一次性获取所有 是一个二维数组
//echo "<pre>".print_r($stmt->fetchAll(PDO::FETCH_ASSOC),true);
$movies=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($movies as $movie){
echo "<pre>".print_r($movie,true);
}
*/
/*
将结果集的字段列表与变量绑定
$stmt->bindColumn('name',$name);
$stmt->bindColumn('detail',$detail);
while($stmt->fetch(PDO::FETCH_ASSOC)){
echo "简称:".$name."<br>"."====>简介 :".$detail."<hr>";
}
*/
//6.关闭连接
$pdo=null;点击 "运行实例" 按钮查看在线实例
每次取一行数据 fetch

一次性获取所有数据 fetchAll

讲结果集的字段与变量绑定

`增删改查`其中'增','删','改'可视为写操作,所以使用rowCount()返回受影响的行数来判断是否执行成功
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号