zoukankan      html  css  js  c++  java
  • php连接mySql数据库 示例

      1 <?php
      2 header("content-type:text/html;charset=utf-8");
      3 error_reporting(E_ALL);
      4 
      5 /*
      6 连接数据库---类被实例化的自动连接
      7 获取提示信息的方法
      8 查询的方法
      9     单条查询
     10     多条查询
     11 增删改的方法
     12 统计记录数的方法
     13 关闭数据库、销毁资源----程序结束的时候调用
     14  */
     15 class dbManage{
     16     private $conn;  #保存数据库连接
     17     public $mess;  #保存提示信息
     18     /*
     19     方法名:__construct   构造方法
     20     方法功能: 类实例化的同时连接数据库
     21     方法参数:$hostname    主机地址
     22               $username   数据库用户名
     23               $password   数据库密码
     24               $dbname   数据库名称
     25               
     26      */
     27     public function __construct($hostname,$username,$password,$dbname){
     28         $this->conn=mysqli_connect($hostname,$username,$password,$dbname); #连接数据库
     29         //判断数据库是否正确连接
     30         if($this->conn){
     31             $this->getMessage('连接成功',true);
     32             $res=mysqli_query($this->conn,"set names utf8");
     33             //判断编码是否正确设置
     34             if($res){
     35                 $this->getMessage('数据库编码设置为utf8',true);
     36             }else{
     37                 $this->getMessage(mysqli_errno($this->conn).":".mysqli_error($this->conn),false);
     38             }
     39         }else{
     40             $this->getMessage('连接失败',false);
     41         }
     42     }
     43     /*
     44     方法名:getMessage   
     45     方法功能: 改造提示信息
     46     方法参数:$info   提示信息
     47               $flag    true表示正确信息绿色文字   false  表示失败信息红色文字 
     48      */
     49     public function getMessage($info,$flag){
     50         if($flag){
     51 
     52             $this->mess.="<div style='color:green;'>".$info."</div>";
     53         }else{
     54             $this->mess.="<div style='color:red;'>".$info."</div>";
     55         }
     56     }
     57     /*
     58     方法名: getMoreData  
     59     方法功能: 获取多条记录
     60     方法参数:$sql  sql语句
     61      */
     62     public function getMoreData($sql){
     63         $rreg=preg_match('/^select/',trim($sql));#验证$sql是否为查询语句
     64 
     65         if($rreg){
     66             $data=mysqli_query($this->conn,$sql);
     67             //判断mysqli_query是否执行成功
     68             if($data){
     69             //将资源类型的数据$data改变成数组
     70             while($arr=mysqli_fetch_array($data,MYSQL_ASSOC)){
     71                 $res[]=$arr;
     72             }
     73             return $res;  #将执行成功结果返回
     74         }else{
     75             $this->getMessage(mysqli_errno($this->conn).":".mysqli_error($this->conn),false);
     76         }
     77         }else{
     78             $this->getMessage(__FUNCTION__.'()只能用于查询多条记录',false);
     79         }
     80         
     81     }
     82     /*
     83     方法名: getOneData  
     84     方法功能: 获取单条记录
     85     方法参数:$sql  sql语句
     86      */
     87     public function getOneData($sql){
     88         $rreg=preg_match('/^select/',trim($sql));
     89         if($rreg){
     90             $data=mysqli_query($this->conn,$sql);
     91             if($data){
     92             $arr=mysqli_fetch_array($data,MYSQL_ASSOC);
     93             return $arr;
     94         }else{
     95             $this->getMessage(mysqli_errno($this->conn).":".mysqli_error($this->conn),false);
     96         }
     97         }else{
     98             $this->getMessage(__FUNCTION__.'()只能用于查询单条记录',false);
     99         }
    100         
    101     }
    102     /*
    103     方法名: execSql  
    104     方法功能: 用于执行insert|update|delete|drop语句
    105     方法参数:$sql  sql语句
    106      */
    107     public function execSql($sql){
    108         $rreg=preg_match('/^insert|delete|update|drop/',trim($sql));
    109         if($rreg){
    110             $data=mysqli_query($this->conn,$sql);
    111             if($data){
    112                 $this->getMessage($sql.'语句执行成功',true);
    113                 return true;
    114             }else{
    115                 $this->getMessage(mysqli_errno($this->conn).":".mysqli_error($this->conn),false);
    116                 return false;
    117             }
    118         }else{
    119             $this->getMessage(__FUNCTION__.'()只能用于执行insert|update|delete|drop语句',false);
    120             return false;
    121         }
    122     }
    123     /*
    124     方法名: getRows 
    125     方法功能: 获取满足条件的记录数
    126     方法参数:$tablename   表名称
    127               $tj   条件,默认为1,1表示统计整张表的记录数
    128      */
    129     public function getRows($tablename,$tj=1){
    130         // select count(*) from student where cj>80;
    131         $sql="select count(*) as c from ".$tablename." where ".$tj;
    132         $data=mysqli_query($this->conn,$sql);
    133         if($data){
    134             $arr=mysqli_fetch_array($data,MYSQL_ASSOC);
    135             // print_r($arr['c']);
    136             return $arr['c'];
    137         }else{
    138             $this->getMessage(mysql_errno($this->conn).":".mysqli_error($this->conn),false);
    139         }
    140     }
    141     /*
    142     方法名: __destruct   析构方法
    143     方法功能:销毁资源,关闭数据库   程序结束自动调用
    144     方法参数:无
    145      */
    146     public function __destruct(){
    147         mysqli_close($this->conn); #关闭数据库
    148         unset($this->mess);#销毁mess
    149     }
    150 }
    151 
    152 ?>
  • 相关阅读:
    Leetcode 493.翻转对
    Leetcode 491.递增子序列
    Leetcode 488.祖玛游戏
    Leetcode 486.预测赢家
    Leetcode 483.最小好进制
    Leetcode 482.密钥格式化
    商品期货投资的那些事(八)为你的套利头寸买个保险
    商品期货投资的那些事(七)趋势套利震荡投机、直道飘移弯道超越
    商品期货投资的那些事(五)做空焦煤焦炭?你是想跟发改委作对吗?
    商品期货投资的那些事(六)期现投资这行怎样才能赚大钱?
  • 原文地址:https://www.cnblogs.com/weihexinCode/p/12318197.html
Copyright © 2011-2022 走看看