PHP数据库的封装操作

<meta charset="utf-8">

<?php
    class LinkData{
        private $link;

        //连接数据库
        public function __construct($host,$user,$pwd,$data)
        {
            $this->link=mysqli_connect($host,$user,$pwd,$data);  //打开一个到 MySQL 服务器的新的连接:mysqli_connect("localhost","wrong_user","my_password","my_db");返回一个代表到 MySQL 服务器的连接的对象。
            if(!$this->link)
            {
                die("连接失败:".mysqli_connect_error());//die(message)输出一条消息,并退出当前脚本:mysqli_connect_error()返回上一次连接错误的错误描述。:    返回一个描述错误的字符串。如果没有错误发生则返回 NULL。
            }
            mysqli_query($this->link,"set names utf8");
            //mysqli_select_db(connection,dbname);用于更改连接的默认数据库。如果成功则返回 TRUE,如果失败则返回 FALSE。
        }


        //查询数据库
        public function select($sql)
        {
            $query=mysqli_query($this->link,$sql);//mysqli_query(connection,query,resultmode);执行某个针对数据库的操作 针对成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,将返回一个 mysqli_result 对象。针对其他成功的查询,将返回 TRUE。如果失败,则返回 FALSE。
            if(mysqli_affected_rows($this->link)>0)//mysqli_affected_rows(connection);返回前一次 MySQL 操作(SELECT、INSERT、UPDATE、REPLACE、DELETE)所影响的记录行数。一个 > 0 的整数表示所影响的记录行数。0 表示没有受影响的记录。-1 表示查询返回错误。
            {
                while($array=mysqli_fetch_array($query))//mysqli_fetch_array(result,resulttype);从结果集中取得一行作为关联数组,或数字数组,或二者兼有。该函数返回的字段名是区分大小写的。返回与读取行匹配的字符串数组。如果结果集中没有更多的行则返回 NULL。
                {
                    var_dump($array);//void var_dump ( mixed $expression [, mixed $... ] );函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。没有返回值。
                    echo'<br>';
                }
                return 1;
            }
            else
            {
                die("查询失败!");
                return 0;
            }
        }


        //插入数据
        public function insert($sql)
        {
            mysqli_query($this->link,$sql);
            $id=mysqli_insert_id($this->link);//mysqli_insert_id(connection);返回最后一个查询中自动生成的 ID(通过 AUTO_INCREMENT 生成)。返回一个在最后一个查询中自动生成的带有 AUTO_INCREMENT 字段值的整数。如果数字 > 最大整数值,它将返回一个字符串。如果没有更新或没有 AUTO_INCREMENT 字段,将返回 0。
            if($id>0)
            {
                echo $id;
                return $id;
            }
            else
            {
                echo"插入数据失败!";
                return 0;
            }
        }



        //删除数据
        public function delete($sql)
        {
            mysqli_query($this->link,$sql);
            $count=mysqli_affected_rows($this->link);
            if($count>0)
            {
                return $count;
            }
            else
            {
                echo"删除失败!";
                return 0;
            }
        }


        //修改数据
        public function update($sql)
        {
            mysqli_query($this->link,$sql);
            $count=mysqli_affected_rows($this->link);
            if($count>0)
            {
                return $count;
            }
            else
            {
                echo"修改失败!";
                return 0;
            }
        }


        //关闭数据库
        public function __destruct()
        {
            if($this->link)
            {

                if(mysqli_close($this->link)) //mysqli_close(connection);关闭先前打开的数据库连接。如果成功则返回 TRUE,如果失败则返回 FALSE。
                {
                    die("关闭数据库成功!");
                }
                else
                {
                    die("关闭数据库失败");
                }
            }
            // TODO: Implement __destruct() method.
        }

    }

$text=new LinkData("localhost","root","","useradmin");
//$text->select("select * from user");
//$text->insert("insert into user(name) values('参商')");
//$text->delete("delete from user where Id=9");
$text->update("update user set name='小米' where Id=1");
?>

 

对数据库操作的更多函数请看这里:https://cloud.tencent.com/developer/article/1326493

补充Mysql增删改查语法(简)

增:

第一种

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  VALUES (value1, value2, value3,...valueN);

第二种

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

删:

DELETE   FROM TABLE_NAME   WHERE  Clause;

改:

UPDATE   TABLE_NAME  SET  column1=value1,column2=value2......... WHERE  some_column=some_value;

查:

第一种

SELECT * FROM TABLE_NAME WHERE Clause;

第二种

SELECT column_name,column_name FROM table_name WHERE Clause;

 

详细的增删改查请看:https://www.cnblogs.com/heyangblog/p/7624645.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP中,我们可以使用封装来连接数据库和引入包。 首先,连接数据库是在PHP中与数据库通信的一个重要步骤。我们可以使用MySQLi(MySQL Improved)或PDO(PHP Data Objects)来连接数据库。这些是PHP提供的两种常用的数据库拓展。通过使用这些拓展,我们可以轻松地连接到各种数据库,并执行各种SQL语句以实现数据的增删改查。为了方便复用和维护,我们可以将连接数据库的代码封装到一个函数或一个类中。比如,我们可以将数据库连接封装在一个名为"db_connect.php"的文件中: ```php <?php function db_connect(){ $host = "localhost"; $username = "root"; $password = ""; $dbname = "mydatabase"; $conn = new mysqli($host, $username, $password, $dbname); if ($conn->connect_error) { die("数据库连接失败: " . $conn->connect_error); } return $conn; } ``` 这样,当我们需要连接到数据库时,只需引入这个文件,并调用`db_connect()`函数即可。 其次,引入包是在PHP中使用第三方库或组件的一种常见方式。在PHP中,我们可以使用`require`或`include`语句来引入包或外部文件。一般而言,我们将这些引入包的语句放在PHP文件的顶部。比如,如果我们想引入一个名为"example.php"的文件,我们可以这样写: ```php <?php require_once("example.php"); ``` 这将会将"example.php"中的代码引入到当前的PHP文件中,使我们可以使用那个文件中定义的类、函数、常量等。 总结起来,通过封装数据库连接和引入包,我们可以提高代码的复用性和可维护性,使我们能够更加高效地操作数据库和使用第三方组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值