利用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; } } } }
运行实例 »
点击 "运行实例" 按钮查看在线实例