mysqli 对象风格封装

<?php
/* $obj=new obj(param...)
$obj->set_charset()
$obj->connect_errno
$obj->connect_error

$obj->query()
$obj->errno
$obj->error

$result=$obj->query(); //mysqli_result对象
$result->fetch_all()
$result->fetch_array()

$obj->close() */
class DbMysqliManage extends mysqli{
    public $link=null;
    public $message;
    /**
     * 操作提示信息
     * @param unknown $mes   信息
     * @param string $flag   成功与失败标志
     * @return boolean
     */
    public function getMessage($mes,$flag=false){
        if($flag){
            $this->message.='<div style="color:green;font-size:14px">'.$mes.'</div>';
            return true;
        }else{
            $this->message.='<div style="color:red;font-size:14px">'.$mes.'</div>';
            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=new mysqli($host,$username,$password,$dbName);
        if($this->link->connect_error){
            return  $this->getMessage('数据库连接失败 错误编号'.$this->link->connect_errno.
                ' 错误信息:'.iconv('gbk','utf-8',$this->link->connect_error));            
        }else{
            $this->getMessage('数据库连接成功',true);
        }
        $char=$this->link->set_charset($charset);
        if($char===false) return $this->getMessage('错误的编码设置 错误编号:'.
            $this->link->mysqli_errno.' 错误信息: '.$this->link->mysqli_error);
        $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=$this->link->query($sql);
            if($result===false){
                return $this->getMessage($sql.'语句错误  错误编号:'.
            $this->link->errno.' 错误信息: '.$this->link->error);
            }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=$this->link->query($sql); //mysqli_result对象
            if(!is_object($result)){                
                return $this->getMessage($sql.'语句错误  错误编号:'.
            $this->link->errno.' 错误信息: '.$this->link->error);
            }else{
                $row=$result->fetch_array(MYSQLI_ASSOC);
                 if($result->fetch_array(MYSQLI_ASSOC)) return $this->getMessage(__FUNCTION__.'()只能查询一条数据  错误编号:'.
            $this->link->errno.' 错误信息: '.$this->link->error);
                $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=$this->link->query( $sql); //mysqli_result对象
            if(!is_object($result)){
                return $this->getMessage($sql.'语句错误  错误编号:'.
                    mysqli_errno($this->link).' 错误信息: '.mysqli_error($this->link));
            }else{
                $moreRow=$result->fetch_all(MYSQLI_ASSOC);
                $this->getMessage('获取多条记录成功',true);
                unset($result);
                return $moreRow;
            }
        }
    }
    /**
     * 关闭连接资源
     * @return boolean
     */
    public function closeDb(){
        $close=$this->link->close();
        if($close===false) return $this->getMessage('数据库连接关闭失败');
        return $this->getMessage('数据库连接关闭成功',true);
    }
    /**
     * 析构函数
     *
     */
    public function __destruct(){
        unset($this->message);
    }
}

转载于:https://www.cnblogs.com/liu-zhao/p/6817413.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用mysqli对象连接到MySQL数据库后,我们可以使用各种方法来执行数据库操作,例如查询数据、插入数据、更新数据等。以下是一些常见的mysqli操作: 1. 查询数据 ``` // 查询所有数据 $sql = "SELECT * FROM users"; $result = $conn->query($sql); // 输出查询结果 if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>"; } } else { echo "0 结果"; } ``` 2. 插入数据 ``` // 插入一条数据 $sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } ``` 3. 更新数据 ``` // 更新一条数据 $sql = "UPDATE users SET email='john_doe@example.com' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } ``` 在上面的示例中,我们首先使用`$conn->query()`方法执行SQL查询语句,并将结果存储在`$result`变量中。然后,我们使用`$result->fetch_assoc()`方法从查询结果中获取一行数据,并使用`while`循环打印所有查询结果。 对于插入和更新数据,我们使用`$conn->query()`方法执行SQL语句,并检查`$conn->query()`方法的返回值来判断操作是否成功。如果操作成功,则输出相应的成功消息,否则输出错误消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值