PHP连接MySql数据库方法简化版

 更新时间:2022年7月25日 17:02  点击:86 作者:清风亦思雨

写这个PHP连接数据库静态工具类之前,是由于当时学习C#的asp.net。老师编写了一个连接数据库的静态工具类,发现使用此类,每次只需要写sql语句,而不再需要进行连接创建,关闭等等。方便其他操作,节约时间。

转眼一年半,如今php课程需要写一个小项目,于是第一件事就是编写一个连接数据库的静态工具类,php和asp.net的语法极其的相似。

在使用此类之前,可以普及两点知识:

PHP中使用静态的调用,不同于其他编程语言,它的静态调用为:

类名::$静态属性

类名::静态方法()

而Java、C#等编程语言都是通过:

类名.静态属性

类名.静态方法()

静态方法的优点:

(1)在代码的任何地方都可以用,不需要实例对象就能访问静态属性或方法;

(2)类的每个实例都可以访问类中定义的静态属性,可以利用静态属性来设置值,该值可以被类的所有对象使用,方便控制数据库参数,连接对象的创建与关闭;

DBHelper.php 静态工具类

<?php
    /**该PHP文件为了连接数据库方便
     * 为连接数据库提供静态方法
     */
    header("Content-type: text/html;charset=utf-8");
    class DBHelper {
        static $sqlName = "127.0.0.1";
        static $userName = "root";
        static $passWord = "123456";
        static $dbName = "test";
        //连接数据库
        static function dbConn() {
            $conn = mysqli_connect(self::$sqlName, self::$userName,
                    self::$passWord, self::$dbName);
            if ($conn == false) {
                echo "<script>alert('数据库连接失败')</script>";
            }
            //设置连接对象编码
            mysqli_query($conn, "set names utf8");
            return $conn;
        }
        //查询数据
        //param1:查询类型,param2:执行语句
        //param1参数类型:  0单个数组,1多个数组。
        static function select($state, $mysql):array {
            $conn = self::dbConn(); //获得连接对象
            $sql = $mysql;
            $query = mysqli_query($conn, $sql);
            if ($state == 1) {
                $result = mysqli_fetch_all($query,MYSQLI_ASSOC);
            } else {
                $result = mysqli_fetch_assoc($query);
            }
            // 释放结果集
            mysqli_free_result($query);
            self::dbClose($conn); //释放连接对象
            if ($result == null) { //如果结果为空,则返回空数据集
                return array();
            }
            return $result;
        }
        //增加、删除、修改数据
        //param1:执行类型;param2:执行语句
        //param1参数类型:1增加,2修改,3删除。
        static function sqlHelper($state, $mysql):int {
            $conn = self::dbConn(); //获得连接对象
            $sql = $mysql;
            $query = mysqli_query($conn, $sql);
            //判断状态,做出相应提示。
            //$sts = $state==3?"删除":($state==2?"修改":($state==1?"增加":$state));
            self::dbClose($conn); //释放连接对象
            if ($query){
                return 1;  //有内容变化
                //return $sts."成功";
            }
            else{
                return 0;  //无内容变化
                //return $sts."失败";
            }
        }
        //关闭连接
        static function dbClose($conn) {
            $conn ->Close();
        }
    }
?>

Test.php 用来测试数据

//查询单个数据
$select = DBHelper ::select(0, "select * from XXX where xx = '$xx'");
//查询多个数据
$selectAll = DBHelper ::select(1,"select * from XXX");
//添加数据
$insert = DBHelper ::sqlHelper(1, "insert into XXX (xx,xx,xx) values ('$xx','$xx','$xx')");
//修改数据
$update = DBHelper ::sqlHelper(2, "update XXX set xx = '$xx',xx = '$xx',xx = '$xx', where xx = '$xx'");
//删除数据
$delete = DBHelper ::sqlHelper(3, "delete from XXX where xx = '$xx'");

前两条测试数据,都是查询,设置的返回参数分别为mysqli_fetch_assoc、mysqli_fetch_all,这两个参数返回的都是array,只不过里面有单个数据或多个数据。

mysqli_fetch_assoc:

mysqli_fetch_all:

后三条对应的是增删改,返回的int类型参数,可以判断执行是否成功。

到此这篇关于PHP连接MySql数据库方法简化版的文章就介绍到这了,更多相关PHP连接MySql内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/qfxl0724/article/details/125847351

相关文章

  • MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
  • 详解Mysql中的JSON系列操作函数

    新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • mysql的3种分表方案

    一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • Windows服务器MySQL中文乱码的解决方法

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
  • Centos5.5中安装Mysql5.5过程分享

    这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [[email protected] ~]# wget http://www.cm...2015-03-15
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 修改MySQL数据库中表和表中字段的编码方式的方法

    今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输...2014-05-31
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • 忘记MYSQL密码的6种常用解决方法总结

    首先要声明一点,大部分情况下,修改MySQL密码是需要有mysql里的root权限的...2013-09-11