批改状态:未批改
老师批语:
注意点:
数据库的连接,增删查改参数的条件使用及语句的拼接,需测试语句是否完整一避免php报错。
数据库操作函数库测试脚本
<?php /** * 数据库操作函数库测试脚本 */ //1,连接测试 // $dbname,$type='mysql',$host='127.0.0.1',$charset='utf8',$port=3306,$user='root',$pass='root' require 'lib/func_pdo.php'; $type='mysql'; $host='127.0.0.1'; $dbname='php'; $charset='utf8'; $port=3306; $user='root'; $pass='root'; $pdo =connect($dbname,$type,$host,$charset,$port,$user,$pass); //2,新增测试 // $table='perm'; // $data=['name'=>'noc','value'=>'AAc']; // insert($pdo,$table,$data); //3,更新测试 // $table='perm'; // $data=['name'=>'noc','value'=>'BBB']; // $where='id=26'; // update($pdo,$table,$data,$where); //4,单条查询测试 // $table ='perm'; // $fields=['name','value']; // $fields='*'; // $fields='name,value'; // $where='id<40'; // echo '<pre>'.print_r(find($pdo,$table,$fields,$where),true).'</pre>'; //4,多条查询测试 // $table ='perm'; // $fields=['name','value']; // $fields='*'; // $fields='name,value'; // $where='id<10'; // $order='id ASC'; // echo '<pre>'.print_r(select($pdo,$table,$fields,$where,$order),true).'</pre>'; //5,删除测试 $table ='perm'; $where='id = 69'; delete($pdo,$table,$where);
PDO数据库操作函数库:
<?php
/*******PDO数据库操作函数库*******/
//连接数据库
if(!function_exists('connect')){
/**
* 连接数据库
* @param [type] $dbname [description]
* @param string $type [description]
* @param string $host [description]
* @param string $charset [description]
* @param integer $port [description]
* @return [type] [description]
*/
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模拟
PDO::ATTR_PERSISTENT => true, //启用持久性连接
];
try {
//实例化PDO类,创建PDO对象
$pdo = new PDO($dsn, $userName, $password, $options);
// echo 'ok';
} catch (PDOException $e) {
print('连接错误'.$e->getMessage());
die();
}
return $pdo;
}}
//新增数据
if(!function_exists('insert')){
/**
* 新增数据
* @param [type] $pdo [description]
* @param [type] $table [description]
* @param array $data [description]
* @return [type] [description]
*/
function insert($pdo,$table,$data=[])
{
// 创建SQL语句
// insert ignore staff set name =:name,salary=:salary
$sql ="INSERT IGNORE {$table} SET ";
foreach (array_keys($data) as $field) {
$sql.=$field.'=:'.$field.',';
}
$sql=rtrim(trim($sql),',').';';
// die($sql);
//INSERT IGNORE perm SET name=:name,value=:value,
//创建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;
}
}
}}
//更新操作
if(!function_exists('update')){
/**
* 更新数据
* [update description]
* @param [type] $pdo [description]
* @param [type] $table [description]
* @param array $data [description]
* @param string $where [description]
* @return [type] [description]
*/
function update($pdo,$table,$data=[],$where='')
{
// 创建SQL语句
$sql ="UPDATE {$table} SET ";
foreach (array_keys($data) as $field) {
$sql.=$field.'=:'.$field.',';
}
$sql=rtrim(trim($sql),',');
//添加更新条件
if(!empty($where)){
$sql .=' WHERE '.$where .';';
}else{
exit('条件不能为空');
}
// die($sql);
//INSERT IGNORE perm SET name=:name,value=:value,
//创建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;
}
}
}}
//查询单条操作
if(!function_exists('find')){
/**
* 查询单条语句
* @param [type] $pdo [description]
* @param [type] $table [description]
* @param [type] $fields [description]
* @param string $where [description]
* @return [type] [description]
*/
function find($pdo,$table,$fields,$where='')
{
// 创建SQL语句
// select name,value from prem where ;
$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),',').';';
// die($sql);
//创建STMT对象
$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')){
/**
* 查询多条语句
* @param [type] $pdo [description]
* @param [type] $table [description]
* @param [type] $fields [description]
* @param string $where [description]
* @return [type] [description]
*/
function select($pdo,$table,$fields,$where='',$oder='')
{
// 创建SQL语句
// select name,value from prem where ;
$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($oder)){
$sql .=' ORDER BY '.$oder;
}
$sql= rtrim(trim($sql),',').';';
// die($sql);
//创建STMT对象
$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')){
/**
* 删除数据
* [update description]
* @param [type] $pdo [description]
* @param [type] $table [description]
* @param array $data [description]
* @param string $where [description]
* @return [type] [description]
*/
function delete($pdo,$table,$where='')
{
// 创建SQL语句
$sql ="DELETE FROM {$table}";
//添加删除条件
if(!empty($where)){
$sql .=' WHERE '.$where .';';
}else{
exit('条件不能为空');
}
// die($sql);
//INSERT IGNORE perm SET name=:name,value=:value,
//创建stmt对象
$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号