批改状态:合格
老师批语:
总结:
昨天学习了数据库的封装
1PDO数据库操作函数库
新增操作
更新操作
查询单条数据
查询多条记录
删除数据
<?php
/**
* PDO数据库操作函数库
*/
//连接数据库
if (!function_exists('connect'))
{
function connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='123.')
{
$dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}";//数据源
$userName = 'root'; //数据库用户名
$password = '123.'; //数据库用户密码
//配置连接属性
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //设置错误模式
PDO::ATTR_CASE => PDO::CASE_NATURAL, //数据表字段保持不变
PDO::ATTR_EMULATE_PREPARES => true, //启用PDO模拟
PDO::ATTR_PERSISTENT => true, //启用持久性连接
];
try {
//实例化PDO类,创建PDO对象
$pdo = new PDO($dsn, $userName, $password, $options);
echo 'ok';
} catch (PDOException $e) {
die('Connect ERROR!:'.$e->getMessage());
}
return $pdo;
}
}
//新增操作
if (!function_exists('insert')) {
function insert($pdo,$table,$data=[]){
//准备sql语句
//insert ignore staff set name=:name,sex=:sex;
$sql = "INSERT IGNORE {table} SET";
foreach(array keys($data) as $field){
$sql = $field.'=:'.$field.',';
}
// die($sql);
$sql = rtrin(trim($sql),',').';';
//创建预处理对象
$stmt = $sql->prepare($sql);
//绑定参数到预处理对象
foreach ($data as $field => $value) {
//绑定
$stmt->binValue("{$field}",$value);
}
//执行新增操作
if ($stmt->execute()){
if ($stmt->rowCount()>0) {
return true;
}
} else {
return false;
}
}
}
//更新操作
if (function_exists('update')) {
function update($pdo,$table,$data=[],$where){
//准备sql语句
//insert ignore staff set name=:name,sex=:sex;
$sql = "INSERT IGNORE {table} SET";
foreach(array keys($data) as $field){
$sql = $field.'=:'.$field.',';
}
// die($sql);
$sql = rtrin(trim($sql),',').';';
//创建预处理对象
$stmt = $sql->prepare($sql);
//绑定参数到预处理对象
foreach ($data as $field => $value) {
//绑定
$stmt->binValue("{$field}",$value);
}
//执行新增操作
if ($stmt->execute()){
if ($stmt->rowCount()>0) {
return true;
}
} else {
return false;
}
}
}
//查询单条数据
if (!function_exists('find')) {
function find($pdo,$table,$fields, $where='') {
//创建SQL语句
$sql = 'SELECT ';
if (is_array($fields)) {
foreach ($fields as $field) {
$sql .= $field.', ';
}
} else {
$sql .= $fields;
}
$sql = rtrim(trim($sql),',');
$sql .= ' FROM '.$table;
//添加查询条件
if(!empty($where)) {
$sql .= ' WHERE '. $where;
}
$sql .= ' LIMIT 1';
//去掉尾部逗号,并添加分号结束
$sql = rtrim(trim($sql),',').';';
//创建PDO预处理对象
$stmt = $pdo->prepare($sql);
//执行查询操作
if($stmt->execute()){
if($stmt->rowCount()>0){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetch();
}
} else {
return false;
}
}
}
//查询多条记录
if (!function_exists('select')) {
function select($pdo,$table,$fields, $where='', $order='') {
//创建SQL语句
$sql = 'SELECT ';
if (is_array($fields)) {
foreach ($fields as $field) {
$sql .= $field.', ';
}
} else {
$sql .= $fields;
}
$sql = rtrim(trim($sql),',');
$sql .= ' FROM '.$table;
//添加查询条件
if(!empty($where)) {
$sql .= ' WHERE '. $where;
}
//添加排序条件
if(!empty($order)) {
$sql .= ' order by '.$order;
}
//去掉尾部逗号,并添加分号结束
$sql = rtrim(trim($sql),',').';';
//创建PDO预处理对象
$stmt = $pdo->prepare($sql);
//执行查询操作
if($stmt->execute()){
if($stmt->rowCount()>0){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
//返回一个二维数组
return $stmt->fetchAll();
}
} else {
return false;
}
}
}
//删除数据
if (!function_exists('delete')) {
function delete($pdo,$table, $where='') {
//创建SQL语句
$sql = "DELETE FROM {$table} ";
//添加删除条件
if(!empty($where)) {
$sql .= 'WHERE '. $where;
}else{
exit('条件不能为空');
}
//去掉尾部逗号,并添加分号结束
$sql = rtrim(trim($sql),',').';';
//创建PDO预处理对象
$stmt = $pdo->prepare($sql);
//执行删除操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
} else {
return false;
}
}
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号