侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PHP实现的mysql操作类【MySQL与MySQLi方式】

php  /  管理员 发布于 7年前   154

本文实例讲述了PHP实现的mysql操作类。分享给大家供大家参考,具体如下:

首先是mysql方式

ut=$ut;    $this->connect();  }  //数据库的链接  function connect(){    $link=mysql_connect($this->host,$this->name,$this->pass) or die ($this->error());    mysql_select_db($this->table,$link) or die("没该数据库:".$this->table);    mysql_query("SET NAMES '$this->ut'");  }  function query($sql, $type = '') {    if(!($query = mysql_query($sql))) $this->show('Say:', $sql);    return $query;  }  function show($message = '', $sql = '') {    if(!$sql) echo $message;    else echo $message.'
'.$sql; } function affected_rows() { return mysql_affected_rows(); } function result($query, $row) { return mysql_result($query, $row); } function num_rows($query) { return @mysql_num_rows($query); } function num_fields($query) { return mysql_num_fields($query); } function free_result($query) { return mysql_free_result($query); } function insert_id() { return mysql_insert_id(); } function fetch_row($query) { return mysql_fetch_row($query); } function version() { return mysql_get_server_info(); } function close() { return mysql_close(); } //向$table表中插入值 function fn_insert($table,$name,$value){ $this->query("insert into $table ($name) value ($value)"); } //根据$id值删除表$table中的一条记录 function fn_delete($table,$id,$value){ $this->query("delete from $table where $id=$value"); echo "id为". $id." 的记录被成功删除!"; }}$db = new ConnectionMySQL();$db->fn_insert('test','id,name,sex',"'','hongtenzone','M'");$db->fn_delete('test', 'id', 1);?>

mysqli的方式:

每页多少条,0为不分页显示  private $PageCount = 1; //分页显示->总共有多少条  private $PageNum  = 1; //分页显示->总共有多少页  private $PageNo  = 1; //分页显示->当前第几页  private $PageKey  = 'page'; //分页url参数键  private $PageStart = 0; //分页显示->当前从第几条开始返回  private $Select;  private $Rest;  private $Result  = false;//结果集  public $FormArray = array();  public $Instr_ID = 0;  private $j = 0;  public function Parameter($Loca, $Root, $Pass, $Base, $Code, $PreFix = ''){    $this->LoaclUser = $Root;    $this->LocalBase = $Base;    $this->LocalCode = $Code;    $this->LocalHost = $Loca;    $this->LocalPass = $Pass;    $this->PreFix  = $PreFix;    return $this;  }  private function Connection( $Sql ){    !function_exists(mysqli_connect) ? die('查询失败,无法加载mysqli扩展') : null;    $this->Conn = @new mysqli( $this->LocalHost, $this->LoaclUser, $this->LocalPass, $this->LocalBase);    $this->Error = mysqli_connect_errno() == 0 ? true : false;    !$this->Error ? die('数据库连接错误,请检查数据库连接参数') : null;    $this->Conn->query('SET NAMES ' . $this->LocalCode);    $this->Rest = $this->Conn->query($Sql);    $this->Err = mysqli_error($this->Conn);    $this->Instr_ID = mysqli_insert_id($this->Conn);    $this->Rest->free_result;    $this->Conn->close;    $this -> FormArray = '';    return $this;  }  public function null(){    $this->PageSize = 0;    //$this->PageCount = 1;    $this->PageStart = 1;    $this->Field   = ' * ';    $this->Select  = '';    unset($this->Table, $this->Where,$this->Order, $this->Result);  }  public function Table( $TableName ) {//数据表   $this -> null();   $this->Table = '`' . $this->PreFix . $TableName . '`';   return $this;  }  public function Field( $Array = '*' ) {//数据字段   !empty( $this->Field ) ? $this->Field = '' : null;   $Array = explode(',', $Array);   foreach ( $Array as $field ) {     $this->Field .= !$this->Start ? '`' . $field . '`' : ', `' . $field . '`';     $this->Start++;   }   $this->Start = 0;   return $this;  }  public function Where( $Where ) {//条件    $this->Where = ' where ' .$Where;    return $this;  }  public function Order( $Order ) {//排序   $this->Order = ' order by ' . $Order;   return $this;  }  public function pk( $key ) {//分页url参数键   $this->PageKey = $key;   return $this;  }  public function Page( $PageSize ) {//分页   $this->PageSize = $PageSize;   $this->PageNo  = $this->get( $this->PageKey );   $this->PageNo  = empty( $this->PageNo ) || !isset( $this->PageNo ) || !is_numeric( $this->PageNo ) || $this->PageNo < 1 ? 1 : $this->PageNo;   return $this;  }  public function post( $Key, $Filter = true ){    return $Filter ? strip_tags($_POST[$Key]) : $_POST[$Key];  }  public function get( $Key, $Filter = true ){    return $Filter ? strip_tags($_GET[$Key]) : $_GET[$Key];  }  public function Sel(){    $this->Select = 'Select ' . $this->Field . ' from ' . $this->Table . $this->Where . $this->Order;    $this->Connection( $this->Select );    if ( $this->Rest->num_rows ) {     while ( $Rs = $this->Rest->fetch_assoc() ) {       $this->Result[] = $Rs;     }    }    $DataBase = $this->Result;    return empty($DataBase) ? false : $DataBase;  }  public function querys( $Sql = '', $Type = 'not', $biao = false ) {    $this->Select = $Sql;    $this->Connection( $this->Select );    if ( $this->Rest->num_rows ) {    if ( !$biao ) {     while ( $Rs = $this->Rest->fetch_array() ) {       $this->Result[] = !preg_match('/^\d+$/i', $Type) ? $Rs : $Rs[ $Type ];     }    } else {     while ( $Rs = $this->Rest->fetch_assoc() ) {       $this->Result[] = $Rs;     }    }    }    $DataBase = $this->Result;    return empty($DataBase) ? false : $DataBase;  }  public function executes( $Sql = '' ){    $this->Connection( $Sql );    return $this->Rest;  }  public function exists( $T = '', $F = '', $W = ''){    if ( empty( $F ) ) { return 0; }    $cmd = empty( $W ) ? 'Select sum(' . $F . ') as `baiyinum` from `' . $this->PreFix . $T .'`' : 'Select sum(' . $F . ') as `baiyinum` from `' . $this->PreFix . $T .'` Where ' . $W;    $this->Connection( $cmd );    unset( $T, $F, $W, $cmd );    $Rel = $this->Rest->fetch_array();    return round( $Rel['baiyinum'], 2 );  }  public function ExistsTo( $Bili = 10000, $T = '', $F = '', $W = ''){    if ( empty( $F ) ) { return 0; }    $cmd = empty( $W ) ? 'Select sum(' . $F . ') as `baiyinum` from `' . $this->PreFix . $T .'`' : 'Select sum(' . $F . ') as `baiyinum` from `' . $this->PreFix . $T .'` Where ' . $W;    $this->Connection( $cmd );    unset( $T, $F, $W, $cmd );    $Rel = $this->Rest->fetch_array();    return round( $Rel['baiyinum'] * $Bili );  }  public function Select( $Type = true, $ListNum = 1 ){ //返回记录(数组形式, 返回条数)   $this->Select = 'Select ' . $this->Field . ' from ' . $this->Table . $this->Where . $this->Order;   if ( is_numeric( $ListNum ) ) {    if ( $this->PageSize > 0 ) {      $this->Connection( $this->Select );//执行查询      $this->PageCount = $this->Rest->num_rows;//取得记录总数      $this->PageNum  = ceil($this->PageCount / $this->PageSize); //总共有多少页      $this->PageNo  = $this->PageNo > $this->PageNum ? $this->PageNum : $this->PageNo;      $this->PageStart = ( $this->PageNo - 1 ) * $this->PageSize;  //当前从第几条开始返回      $this->Select  .= ' limit ' . $this->PageStart . ', ' .$this->PageSize; //重新构造sql语句    } else {      $this->Select  .= ' limit ' . $ListNum; //重新构造sql语句    }   } else {      $this->Select  .= ' limit 1'; //重新构造sql语句   }   //echo $this->Select;   $this->Connection( $this->Select );//再次执行查询   if ( $this->Rest->num_rows ) {//如果记录存在    if ( $Type ) {     while ( $Rs = $this->Rest->fetch_array() ) {       $this->Result[] = $Rs;     }    }else{     while ( $Rs = $this->Rest->fetch_assoc() ) {       $this->Result[] = $Rs;     }    }   }   if ( ( $ListNum == 1 or !is_numeric( $ListNum ) ) && !$this->PageSize) { $this->Result = $this->Result[0]; }   $DataBase = $this->Result;   return empty($DataBase) ? false : $DataBase;  }  public function Num() { //返回记录总数   $this->Select = 'Select ' . $this->Field . ' from ' . $this->Table . $this->Where . $this->Order;   $this->Connection( $this->Select );//执行查询   return $this->Rest->num_rows;//取得记录总数  }  public function PageNav($NumNav = false ) { //分页   $Action = $this -> get('action');   !empty( $Action ) or $Action = 'index';   $Module = $this -> get('module');   !empty( $Module ) or $Module = 'index';   $NavUrl  = '/' . $Module . '/' . $Action . '/' . $this -> PageKey .'/';   $NaIndex = '/' . $Module . '/' . $Action;   $PageHtml = "\n
"; $PageHtml .= '' . $this->PageCount . '条记录 ' . $this->PageNo . '/' . $this->PageNum . '页 '; $this->PageNo <= 1 or $PageHtml .= "首页\nPageNo - 1) . "\">上一页\n"; if ( $NumNav ) { $PageHtml .= $this->NumPage($NavUrl); } $this->PageNo >= $this->PageNum or $PageHtml .= "PageNo + 1) . "\">下一页\nPageNum . "\">尾页\n"; $PageHtml .= "\n"; return $PageHtml; } private function NumPage( $Can = '' ) { //数字分页 $NumHtml = ''; $First = 1; $Last = $this->PageNum; if ( $this->PageNum > 5 ) { if ( $this->PageNo < $this->PageNum ) { $First = $this->PageNo - 2; $Last = $this->PageNo + 2; }else{ $First = $this->PageNo - 4; $Last = $this->PageNum; } } if ( $First < 1 ) { $First = 1; $Last = $First + 4;} if ( $Last > $this->PageNum ) { $First = $this->PageNum - 4; $Last = $this->PageNum;} for( $i = $First; $i <= $Last; $i++) { $NumHtml .= $this->PageNo != $i ? "\n\t" . '' . $i . '' . "\n\t" : "\n\t" .'' . $i . '' . "\n\t"; } unset($Can, $First, $i, $Last); return $NumHtml; } public function UserPage($NumNav = false, $PageName = 'index', $Mulu = 'user' ) { //会员中心分页 $NavUrl = '/' . $Mulu . '/' . $PageName . '/' . $this->PageKey . '/'; $PageHtml = "\n
"; $PageHtml .= '' . $this->PageCount . '条记录 ' . $this->PageNo . '/' . $this->PageNum . '页 '; $this->PageNo <= 1 or $PageHtml .= "首页\nPageNo - 1) . "\">上一页\n"; if ( $NumNav ) { $PageHtml .= $this->NumPage($NavUrl); } $this->PageNo >= $this->PageNum or $PageHtml .= "PageNo + 1) . "\">下一页\nPageNum . "\">尾页\n"; $PageHtml .= "
\n"; return $PageHtml; } //表单处理开始 //判断表单时候提交 public function FormIs( $Keys = 'mm' ) { return $_POST[ $Keys ] == 1 ? true : false; } //post方式获取数据 public function _post( $Keys = '', $TiHuan = '') { $Values = strip_tags( $_POST[ $Keys ] ); $this->FormArray[$Keys] = empty( $Values ) ? $TiHuan : $Values; return empty( $Values ) ? $TiHuan : $Values; } //get方法获取数据 public function _get( $Keys = '', $TiHuan = '') { $Values = strip_tags( $_GET[ $Keys ] ); return empty( $Values ) ? $TiHuan : $Values; } //判断是否为数字并且不小于0 public function IsNum( $Num = 0, $Mesg = '参数必须为数字' ) { if ( is_numeric( $Num ) && !empty( $Num ) && $Num >= 0 ) { return $Num; }else{ die( $Mesg ); } } //判断是否为数字并且不小于0返回True/False public function NumBer( $Num = 0) { return is_numeric( $Num ) && !empty( $Num ) && $Num >= 0 ? true : false; } //检测相关数据似乎存在 public function IsData($Types = true, $memg = '数据已经存在' ){ $this->Connection('select ' . $this->Field . ' from ' . $this->Table . $this->Where); if ( $Types ){ $this->Rest->num_rows > 0 ? die( $memg ) : null; } else { return $this->Rest->num_rows; } } //写入数据库记录 public function into( $Mesg = '' ){ !is_array( $this->FormArray ) ? die( $Mesg ) : null; $Sql = 'insert into ' . $this->Table . ' (`'; $I = 0; foreach ( $this->FormArray as $Key => $Val ){ $Duan .= !$I ? $Key . '`' : ', `' . $Key . '`'; if ( is_numeric( $Val ) ){ $Vals .= !$I ? $Val : ', ' . $Val; }else{ $Vals .= !$I ? '\'' . $Val . '\'' : ', \'' . $Val . '\''; } $I++; } $Sql .= $Duan . ') values (' . $Vals . ')'; //@file_put_contents('1.sql', $Sql, FILE_APPEND); $this->Connection( $Sql ); return !empty( $this->Err ) ? false : true; } //数组形式写入数据 public function MsgBox( $Table = '', $Filed = array() ) { $this -> Table($Table); foreach( $Filed as $Key => $Val ) { $this -> FormArray[ $Key ] = $Val; } return $this -> Into('未取得数据'); } //修改数据库记录 public function Edit( $Array = array() ) { if ( empty( $Array ) ) { $Array = $this -> FormArray; } if ( !is_array( $Array ) || empty( $Array ) ) { return false; } else { $Sql = 'update ' . $this -> Table . ' set '; $I = 0; $Sub = ''; $Huan = array('-' => '[jian]', '+' => '[jia]', '*' => '[cheng]', '/' => '[chu]'); $Zhan = array('[jian]' => '-', '[jia]' => '+', '[cheng]' => '*', '[chu]' => '/'); foreach ( $Array as $Files => $Val ) { $Val = !is_numeric( $Val ) && !preg_match('/\`\w+\`\s*(\+|\-|\*|\/)/i', $Val) ? '\'' . $Val . '\'' : $Val; foreach ( $Huan as $key => $val ){ $Val = str_replace($key, $val, $Val); } $duan = !$I ? '`' . $Files . '` = ' : ', `' . $Files . '` = '; $Sub .= $duan . $Val; $I++; } $Sql .= $Sub . $this -> Where; foreach ( $Zhan as $Fan => $Hui ) { $Sql = str_replace($Fan, $Hui, $Sql); } //echo $Sql; die; $this -> Connection( $Sql ); unset( $Array, $duan, $Fan, $Files, $Huan, $Hui, $I, $key, $Sql, $Sub, $Val, $Zhan, $val ); return !empty( $this -> Err ) ? false : true; } } //删除数据库记录 public function del(){ $Sql = 'delete from ' . $this->Table . $this->Where; $this->Connection( $Sql ); unset($Sql); return !empty( $this->Err ) ? false : true; } //表单处理结束 //页面跳转 public function Msg( $Text = '操作成功' ) { echo ''; echo ''; exit; } #取得系统当前时间 public function Times(){ return str_replace('-', '[jian]', date('Y-m-d H:i:s')); } #取得用户IP地址 public function GetIP(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return($ip); } //最后关闭数据库连接 public function Close(){ !is_object( $this -> Conn ) or mysqli_close( $this -> Conn ); }}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP数据库操作之基于Mysqli的数据库操作类库
  • php封装的mysqli类完整实例
  • PHP以mysqli方式连接类完整代码实例
  • PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
  • php写的带缓存数据功能的mysqli类
  • PHP使用Mysqli类库实现完美分页效果的方法
  • PHP实现基于mysqli的Model基类完整实例
  • PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
  • PHP封装的mysqli数据库操作类示例
  • PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例


  • 上一条:
    PHP实现的MD5结合RSA签名算法实例
    下一条:
    PHP实现打包下载文件的方法示例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客