1. 实例演示数据库的CURD操作
<?php
namespace pdo_edu;
use PDO;
// 1.连接数据库
//DNS:数据库配置参数,类型、主机名、数据库名、端口号、默认字符集
$username = 'root';
$password = 'root';
$dsn = 'mysql:host=127.0.0.1;dbname=statt;port=3306;charset=utf8';
$db = new PDO($dsn,$username,$password);
//设置查询数据只获取关联数组
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
// var_dump($db);
// 2.增删改查:CURD
/**
* PDO预处理:1.防止sql注入。2.数据延迟绑定
* (编程时只写sql模板,执行sql语句在给占位符绑定真实数据)
* 预处理过程:
* 1.创建语句模板对象:数据用占位符表示
* 2.执行sql语句,根据操作类型(写/读),读返回结果集/数组,写返回受影响的记录数量
* '?'匿名占位符; 'string'命名占位符
*/
//INSERT插入
//INSERT 表名 set 字段=值
// 1.关键字全大写
// 2.表名字段名使用反引号作为定界符
$sql = 'INSERT `user` SET `name` = ?, `sex` = ?, `email` = ?';
// print($sql);
//1.创建sql语句模板对象
$statt = $db->prepare($sql);
//2.执行sql语句
//成功
$statt->execute(['洪七公',0,'gongqigong@php.cn']);
$statt->execute(['小龙女',1,'xiaolongnv@php.cn']);
$statt->execute(['李莫愁',1,'limochou@php.cn']);
if($statt->rowCount()>0){
echo '新增成功,ID=' . $db->lastInsertId();
}else{
echo '新增失败';
print_r($statt->errorInfo());
}
if($statt->execute(['杨过',0,'yangguo@php.cn'])){
}else{
//失败
echo '执行失败';
print_r($statt->errorInfo());
}
//UPDATE更新操作
$sql = 'UPDATE `user` SET `name` = ? WHERE `id` = ?';
$statt = $db->prepare($sql);
$statt->execute(['小龙女22',3]);
if($statt->rowCount()>0){
echo '更新成功';
}else{
echo '更新失败';
print_r($statt->errorInfo());
}
//DELETE删除操作
$sql = 'DELETE FROM `user` WHERE `id` = ?';
$statt = $db->prepare($sql);
$statt->execute([3]);
if($statt->rowCount()>0){
echo '删除成功';
}else{
echo '删除失败';
print_r($statt->errorInfo());
}
//SELECT 查询操作
$sql = 'SELECT * FROM `user`';
$statt = $db->prepare($sql);
$statt->execute();
//单条查询fetch
// $staff = $statt->fetch();
// printf('<pre>%s</pre>',print_r($staff,true));
//多条查询fetchAll
$staff = $statt->fetchAll();
printf('<pre>%s</pre>',print_r($staff,true));
描述PDO的本质与原理是什么?为什么要用预处理?
PDO预处理:1.防止sql注入。2.数据延迟绑定
(编程时只写sql模板,执行sql语句在给占位符绑定真实数据)
预处理过程:
1.创建语句模板对象:数据用占位符表示
2.执行sql语句,根据操作类型(写/读),读返回结果集/数组,写返回受影响的记录数量
'?'匿名占位符; 'string'命名占位符
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!