博客列表 >PHP操作PDO增删查改--九期线上班

PHP操作PDO增删查改--九期线上班

王玉龙℡¹³⁵⁵²⁰⁶²¹³⁹
王玉龙℡¹³⁵⁵²⁰⁶²¹³⁹原创
2019年11月25日 11:28:04790浏览

一、连接数据库

**写法:

**$pdo= new PDO(‘数据库类型:地址;库名’,’账号’,’密码’);

把所有数据写成变量,方便后期更改

数据源附变量

$db =[
‘type’ => ‘mysql’,//数据库类型;
‘host’ => ‘127.0.0.1’,//附有ip地址的网址或ip地址;
‘dbname’ => ‘mysql1’,//库名;
‘user’ => ‘root’,//实际账号;
‘password’ => ‘root’,//实际密码;
‘prot’ => 3306,//端口;
]

数据源配置

1、使用连接符,字符串用单引号,与变量用.连接
$dsn = $db[‘type’].’:host=’.$db[‘host’].’;dbname=’.$db[‘dbname’];
2、使用双引号,变量用花括号包裹
$dsn = “{$db[‘type’]}:host={$db[‘host’]};{$db[‘dbname’]}”;

实际书写

$pdo = new PDO($dsn,$db[‘user’],$db[‘password’]);

例:
<?php
$db= [
‘type’ => ‘mysql’,
‘host’=> ‘127.0.0.1’,
‘dbname’ => ‘mysql1’,
‘username’=>’root’,
‘password’=>’root’,
‘prot’ => 3306
];
//数据源配置
//双引号里面的变量需要用花括号包裹起来
$dsn = “{$db[‘type’]}:host={$db[‘host’]};dbname={$db[‘dbname’]}”;
//连接符连接变量时,变量不加引号,字符串及符号加单引号
$dsn=$db[‘type’].’:host=’.$db[‘host’].’;dbname=’.$db[‘dbname’];

//try是报错时常用
try{
//如果链接出错就会执行catch里面的代码
//不出错不执行,等于错误提示
//连接数据库
$pdo = new pdo ($dsn,$db[‘username’],$db[‘password’]);

  1. //意思是把错误赋值给一个变量

}catch ( PDOException $e ){
//die是停止执行代码的意思,里面有很多方法
//方法只允许在他里面使用
// -> 如果错误就执行getMessage的方法
die( ‘错误信息:’.$e ->getMessage() );

}

二、创建SQL语句模板(语句增删改查都可以)

1、增加数据(所有语句用引号包裹,封号结束)

//变量值前面用冒号代表变量,下面需要给变量赋值才可以
$变量 = ‘INSERT INTO 表名 SET 字段名=:’变量值’;
$sql = ‘INSERT INTO category SET cate_id=:id, name=:n,alias=:a’;
例:
<?php
//增加
//1、引入连接数据库文件
include ‘moban.php’;
//2、创建SQL语句预处理模板
//:冒号为了占位用来接收值,相当于变量
$sql = ‘INSERT INTO category SET cate_id=:cate,name=:n,alias=:a’;
//3、预处理
//意思是链接的在数据据库里预处理$sql这个变量模板,
//这个变量是增加数据库的信息;
$stmt=$pdo ->prepare($sql);//执行预处理模板
//4、绑定到预处理模板参数,
//用->执行,格式:预处理变量->bindParam(‘冒号后面变量’,’设置的变量’,PDO::PARAM_INT/STR,常量);
$cate=5;
$n=’els’;
$a=’俄罗斯’;
$stmt -> bindParam(‘cate’,$cate,PDO::PARAM_INT);
$stmt -> bindParam(‘n’,$n,PDO::PARAM_STR);
$stmt -> bindParam(‘a’,$a,PDO::PARAM_STR);
//执行绑定参数模板
$add=$stmt -> execute();
//判断是否添加成功,成功代表添加SQL语句没有出错
if ($add){
$count = $stmt -> rowCount();
//判断插入的条数,SQL语句写法没有报错
if ($count > 0 ){
echo ‘成功添加’.$count.’条数据’;
}else{
echo ‘数据插入失败’;
}
}else{
die(print_r($stmt ->errorInfo(),true));
}
//销毁变量
$pdo=null;等价于unset($pdo);

2、更新数据

//只需要在增加数据的基础上,增加更改条件即可
$变量 = ‘UPDATE 表名 SET 字段名=’值’ WHERE 条件‘;
$sql = ‘UPDATE category SET name=:n WHERE cate_id=:id’;
例如:
<?php
//改—-类似增加
include ‘moban.php’;
//cate_id=:id';一定要给条件给个变量 $sql = 'UPDATEcategorySETname=:n,alias=:a WHEREcate_id`=:id’;
$stmt=$pdo ->prepare($sql);
$n=’fei’;
$a=’非洲’;
$id= 7;
$stmt -> bindParam(‘n’,$n,PDO::PARAM_STR);
$stmt -> bindParam(‘a’,$a,PDO::PARAM_STR);
$stmt -> bindParam(‘id’,$id,PDO::PARAM_INT);
$add=$stmt -> execute();
if ($add){
$count = $stmt -> rowCount();
if ($count > 0 ){
echo ‘数据修改成功’;
}else{
echo ‘数据修改失败’;
}
}else{
die(print_r($stmt ->errorInfo(),true));
}

3、删除数据

//不要绑定值,只要ID即可
$变量 = ‘DELETE FROM 表名 WHERE 条件‘;
$sql = ‘DELETE FROM category WHERE cate_id=:id’;

4、查询数据

$变量 = ‘SELECT FROM 表名‘;
$sql = ‘SELECT
FROM category‘ ;
例:
<?php
//查
include ‘moban.php’;
//只放表名,不设条件等于全局查询出
$sql = ‘SELECT * FROM category‘ ;//预处理模板
$stmt =$pdo ->prepare($sql);//执行模板,$pdo是数据库链接的变量,等于可以进入数据库
$add = $stmt ->execute();//执行绑定语句
if ($add){
$arr=$stmt ->fetchALL();//查询所有
foreach ($arr as $v){
echo $v[‘cate_id’].’—-‘.$v[‘name’].’—-‘.$v[‘alias’];
echo ‘<hr>‘;
}
}else{
die(print_r($stmt ->errorInfo(),true));
}

总结(pdo流程):

1、连接数据库
$pdo = new pdo ($dsn,$db[‘username’],$db[‘password’]);
2、创建SQL语句模板
增:$sql = ‘INSERT INTO category SET cate_id=:id, name=:n,alias=:a’;
改:$sql = ‘UPDATE category SET name=:n WHERE cate_id=:id’;
删:$sql = ‘DELETE FROM category WHERE cate_id=:id’;
查:$sql = ‘SELECT * FROM category‘ ;
3、创建SQL语句对象
$stmt =$pdo ->prepare($sql);
4、绑定值
$cate=5;
$stmt -> bindParam(‘cate’,$cate,PDO::PARAM_INT);
6、执行绑定值
$add = $stmt -> execute();
7、处理返回结果
8、销毁变量
$pdo = null;
手抄:





声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议