批改状态:未批改
老师批语:
封装数据库操作函数库(连接数据库,查询,插入,更新,删除)。调用函数即可完成操作
数据库连接函数:connect()函数
connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='root')
<?php
/**
* PDO数据库操作函数库
*/
//1.连接数据库
if (!function_exists('connect'))
{
/**
* 数据库连接
* @param $dbname
* @param string $type
* @param string $host
* @param string $charset
* @param string $port
*/
function connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='root')
{
$dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}";
$userName = $user;
$password = $pass;
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //错误模式
PDO::ATTR_CASE => PDO::CASE_NATURAL, //自然名称
PDO::ATTR_EMULATE_PREPARES => true, //启用模拟功能
PDO::ATTR_PERSISTENT => true, //启用持久性连接
];
try{
//实例化PDO类,创建PDO对象
$pdo = new PDO($dsn, $userName, $password, $options);
// echo '<h1>连接成功</h1>';
}catch (PDOException $e){
die('连接错误'.$e->getMessage());
}
return $pdo;
}
}
$type='mysql';
$host='127.0.0.1';
$dbname = 'php';
$charset='utf8';
$port=3306;
$user = 'root';
$pass = 'root';
//1.连接测试
$pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass);点击 "运行实例" 按钮查看在线实例
数据库查询函数库封装:find()函数
find($pdo, $table, $fields, $where='') : 传入参数为$pdo连接,表名,查询的字段名,条件。即可返回查询到的结果数组
//1.查询单条语句
<?php
if(!function_exists('find')){
/**
* @param $pdo
* @param $table
* @param $fields
* @param string $where
* @return bool
*/
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'.';';
//创建STMT对象
$stmt = $pdo->prepare($sql);
if($stmt->execute()){
if($stmt->rowCount()){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetch();
}
}else{
return false;
}
}
}
////////////////////
$table ='staff';
$fields = ['name', 'age', 'salary'];
//$fields = '*';
//$fields = 'name, salary';
$where = 'age < 60';
echo '<pre>'.print_r(find($pdo, $table, $fields, $where), true).'</pre>';点击 "运行实例" 按钮查看在线实例
2.查询多条语句
<php
if(!function_exists('findAll')){
function findAll($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;
}
}
}
//4.多条查询测试
$table ='staff';
$fields = ['name', 'age', 'salary'];
$fields = '*';
$fields = 'name, salary';
$where = 'age < 60';
$order = 'age ASC';
echo '<pre>'.print_r(findAll($pdo, $table, $fields, $where, $order),true).'</pre>';点击 "运行实例" 按钮查看在线实例
新增操作:insert()函数
<?php
if (!function_exists('insert')) {
/**
* 新增数据
* @param $pdo
* @param $table
* @param $data
* @return bool
*/
function insert($pdo, $table, $data=[])
{
//创建SQL语句
$sql = "INSERT IGNORE {$table} SET ";
foreach (array_keys($data) as $field) {
$sql .= $field.'=:'.$field.', ';
}
//去掉尾部逗号,并添加分号结束
$sql = rtrim(trim($sql),',').';';
//创建PDO预处理对象
$stmt = $pdo->prepare($sql);
//绑定参数到预处理对象
foreach ($data as $field => $value) {
$stmt->bindValue(":{$field}",$value);
}
//执行新增操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
} else {
return false;
}
}
}
$table = 'staff';
$data =[
'name' => '张飞',
'sex' => '男',
'age' => '23',
'salary' => '5200'
];
insert($pdo, $table, $data);点击 "运行实例" 按钮查看在线实例
更新函数:update();
<?php
//3.更新操作
if(!function_exists('update')){
/**
* @param $pdo
* @param $table
* @param array $data
*/
function update($pdo, $table, $data=[], $where='')
{
//创建SQL语句
$sql = "UPDATE IGNORE {$table} SET ";
foreach(array_keys($data) as $field){
$sql .=$field.' =:'.$field.',';
}
$sql = rtrim(trim($sql), ',');
// die($sql);
//添加更新条件
if(!empty($where)){
$sql .= ' WHERE '. $where;
}else{
exit('条件不能为空');
}
$sql = rtrim(trim($sql), ',').';';
//创建stmt对象
$stmt = $pdo->prepare($sql);
//绑定参数
foreach($data as $field=>$value){
$stmt->bindValue(":{$field}", $value);
}
//执行新增操作
if($stmt->execute()){
if($stmt->rowCount() > 0){
return true;
}
}else{
return false;
}
}
}
////////////////////
$table = 'staff';
$data =[
'name' => '吕布',
'sex' => '男',
'age' => '73',
'salary' => '5200'
];
$where = 'staff_id=12';
update($pdo, $table, $data, $where);点击 "运行实例" 按钮查看在线实例
删除操作:delete()函数
<?php
//6.删除操作
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), ',').';';
//创建stmt对象
$stmt = $pdo->prepare($sql);
//执行删除操作
if($stmt->execute()){
if($stmt->rowCount() > 0){
return true;
}
}else{
return false;
}
}
}
////////////////////
//5.执行删除
$table = 'staff';
$where = 'staff_id = 30';
delete($pdo, $table, $where);
//unset($pdo);
$pdo = null;点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号