批改状态:未批改
老师批语:
利用PDO执行数据的增删查改功能,实现函数库操作
<?php
/医院
* PDO数据库操作函数库
*/
//1.连接数据库
if(!function_exists('connect')) {
/医院
* 数据库连接
* @param $dbname 数据库名
* @param string $type 数据库类型
* @param string $host 连接主机
* @param string $charset 字符集
* @param string $port 连接端口
* @param $username 数据库用户名
* @param $passwd 数据库密码
* @return PDO
*/
function connect($dbname, $type = 'mysql', $host = '127.0.0.1', $charset = 'utf8', $port = '3306', $username, $passwd)
{
$dsn = $type . ":host=" . $host . ";dbname=" . $dbname . ";charset=" . $charset . ";port=" . $port;
try {
$pdo = new PDO($dsn, $username, $passwd);
} catch (PDOException $e) {
//连接失败,返回错误信息
print "CONNECT ERROR:" . $e->getMessage();
die();
}
return $pdo;
}
}
//2.新增数据
if(!function_exists("insert")){
/医院
* 新增操作
* @param $pdo
* @param $table
* @param array $data 要插入的数据
*/
function insert($pdo,$table,$data=[]){
$sql = "INSERT IGNORE {$table} SET ";
//拼接sql语句
foreach (array_keys($data) as $field) {
$sql .= $field.'=:'.$field.', ';
}
//去除右侧逗号,并加上分号
$sql = rtrim(trim($sql),",").";";
$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;
}
}
}
//2.更新数据
if(!function_exists("update")){
/医院
* @param $pdo
* @param $table
* @param array $data 要更新的数据
* @param string $where 要插入的条件
* @return bool
*/
function update($pdo,$table,$data=[],$where = ''){
$sql = "UPDATE {$table} SET ";
//拼接sql语句
foreach (array_keys($data) as $field){
$sql .= $field."=:".$field.",";
}
//去除右侧逗号
$sql = rtrim(trim($sql),",");
//添加更新条件
if(!empty($where)){
$sql .= " WHERE ".$where.";";
}else{
exit("条件不能为空!");
}
// die($sql);
$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;
}
}
}
}
//3.查询单条记录
if(!function_exists("find")){
/医院
* @param $pdo
* @param $table
* @param $fields 要查询的字段,可数组或字符串
* @param string $where 查询条件
* @return array 返回二维数组
*/
function find($pdo,$table,$fields,$where = ''){
$sql = "SELECT ";
if(is_array($fields)){
foreach ($fields as $field){
$sql .= $field.",";
}
}else{
$sql .= $fields .",";
}
$sql = rtrim(trim($sql),",")." FROM ".$table;
if(!empty($where)){
$sql .= " WHERE " .$where. " LIMIT 1 ;";
}
$stmt = $pdo->prepare($sql);
//执行查询操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return $stmt->fetch(PDO::FETCH_ASSOC);
}else{
return false;
}
}else{
return false;
}
}
}
//3.查询多条记录
if(!function_exists("select")){
/医院
* 查询多条记录
* @param $pdo
* @param $table
* @param $fields 要查询的字段名,可字符串或数组
* @param string $where 查询条件
* @param string $order 排序
* @param string $limit 查询条数
* @return array 返回值:二维数组
*/
function select($pdo,$table,$fields,$where = '',$order = " ",$limit = " "){
$sql = "SELECT ";
if(is_array($fields)){
foreach ($fields as $field){
$sql .= $field.",";
}
}else{
$sql .= $fields .",";
}
$sql = rtrim(trim($sql),",")." FROM ".$table;
if(!empty($where)){
$sql .= " WHERE " .$where;
}else{
exit("条件不能为空");
}
if(!empty($order)){
$sql .= " ORDER BY ".$order;
}
if(!empty($limit)){
$sql .= " LIMIT ".$limit .";";
}
$stmt = $pdo->prepare($sql);
//执行查询操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}else{
return false;
}
}else{
return false;
}
}
}
//2.删除数据
if(!function_exists("delete")){
/医院
* 删除数据
* @param $pdo
* @param $table 要删除数据的表名
* @param string $where 删除条件
* @return bool 返回值
*/
function delete($pdo,$table,$where = ''){
$sql = "DELETE FROM {$table} ";
//删除更新条件
if(!empty($where)){
$sql .= " WHERE ".$where.";";
}else{
exit("条件不能为空!");
}
$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号