热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysqli过程化风格

<?php****@authorAdministrator*mysqli_conncet()obj*mysqli_set_charset()bool*mysqli

/**
 *
 * @author Administrator
 *  mysqli_conncet() obj
 *  mysqli_set_charset() bool
 *  mysqli_query()  mixed  输入bool  输出result_obj
 *  mysqli_fetch_array()  row
 *  mysqli_fetch_all() all
 */
class DbMysqliManage{
    public $link=null;
    public $message;
    /**
     * 操作提示信息
     * @param unknown $mes   信息
     * @param string $flag   成功与失败标志
     * @return boolean
     */
    public function getMessage($mes,$flag=false){
        if($flag){
            $this->message.='

'.$mes.'
';
            return true;
        }else{
            $this->message.='
'.$mes.'
';
            return false;
        }
    }  
    /**
     * 初始化link
     * @param unknown $host 主机地址
     * @param unknown $username 用户
     * @param unknown $password 密码
     * @param unknown $dbName 数据库名
     * @param string $charset 字符集
     */
    public function __construct($host,$username,$password,$dbName,$charset='utf8'){
        $this->link=mysqli_connect($host,$username,$password,$dbName);
        if($this->link===false){
            return  $this->getMessage('数据库连接失败 错误编号'.mysqli_connect_errno().
                ' 错误信息:'.iconv('gbk','utf-8',mysqli_connect_error()));            
        }else{
            $this->getMessage('数据库连接成功',true);
        }
        $char=mysqli_set_charset($this->link, $charset);
        if($char===false) return $this->getMessage('错误的编码设置 错误编号:'.
            mysqli_errno($this->link).' 错误信息: '.mysqli_error($this->link));
        $this->getMessage('编码设置成功',true);       
    }
    /**
     * 执行增删改语句
     * @param unknown $sql sql语句
     * @return boolean
     */
    public function execSql($sql){
        $sql=trim($sql);
        $match=preg_match('/^(insert|update|delete)/', $sql);
        if($match===0){
            return $this->getMessage(__FUNCTION__.'()方法只支持增删改操作');
        }else{
            $result=mysqli_query($this->link, $sql);
            if($result===false){
                return $this->getMessage($sql.'语句错误  错误编号:'.
            mysqli_errno($this->link).' 错误信息: '.mysqli_error($this->link));
            }else{
                return $this->getMessage('增删改操作成功',true);
            }
        }
    }
    /**
     * 查询一条记录
     * @param unknown $sql  sql语句
     * @return 失败:boolean|成功:一维数组
     */
     public function getOneData($sql){
      $sql=trim($sql);
        $match=preg_match('/^select/', $sql);
        if($match===0){
            return $this->getMessage(__FUNCTION__.'()方法只支持查询操作');
        }else{
            $result=mysqli_query($this->link, $sql); //mysqli_result对象
            if(!is_object($result)){                
                return $this->getMessage($sql.'语句错误  错误编号:'.
            mysqli_errno($this->link).' 错误信息: '.mysqli_error($this->link));
            }else{
                $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
                 if(mysqli_fetch_array($result,MYSQLI_ASSOC)) return $this->getMessage(__FUNCTION__.'()只能查询一条数据  错误编号:'.
            mysqli_errno($this->link).' 错误信息: '.mysqli_error($this->link));
                 $this->getMessage('查询一条记录成功',true);
                unset($result);
                return $row;            
            }
        }
    }
    /**
     * 查询多条记录
     * @param unknown $sql sql语句
     * @return 失败:boolean|成功:二位数组
     */
    public function getMoreData($sql){
        $sql=trim($sql);
        $match=preg_match('/^select/', $sql);
        if($match===0){
            return $this->getMessage(__FUNCTION__.'()方法只支持查询操作');
        }else{
            $result=mysqli_query($this->link, $sql); //mysqli_result对象
            if(!is_object($result)){
                return $this->getMessage($sql.'语句错误  错误编号:'.
                    mysqli_errno($this->link).' 错误信息: '.mysqli_error($this->link));
            }else{
                $moreRow=mysqli_fetch_all($result,MYSQLI_ASSOC);  
                unset($result);
                return $moreRow;
            }
        }
    }
    /**
     * 关闭连接资源
     * @return boolean
     */
    public function closeDb(){
        $close=mysqli_close($this->link);
        if($close===false) return $this->getMessage('数据库连接关闭失败');
        return $this->getMessage('数据库连接关闭成功',true);
    }
    /**
     * 析构函数
     *
     */
    public function __destruct(){
        unset($this->message);
    }
}





推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • React项目中运用React技巧解决实际问题的总结
    本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
author-avatar
左莹薇_834
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有