Home > Backend Development > PHP Problem > PHP encapsulates a database query function

PHP encapsulates a database query function

PHPz
Release: 2023-03-23 18:03:19
Original
1539 people have browsed it

In website development, database operations are very common. For PHP language, querying the database is also a very important function. In PHP, we use MySQLi and PDO extensions to operate the database.

When using MySQLi and PDO to query the database, we usually need to write a long code, which increases unnecessary code volume and development time. In response to this situation, we can encapsulate the function that is queried from the database to achieve code optimization and improve development efficiency.

1. MySQLi query encapsulation function

When using MySQLi query, we can encapsulate the following query function:

  1. Connect database function:
function connectDb() {
    $servername = "yourservername";
    $username = "yourusername";
    $password = "yourpassword";
    $dbname = "yourdbname";

    // 创建连接
    $conn = new mysqli($servername, $username, $password, $dbname);

    // 检测连接
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    return $conn;
}
Copy after login
  1. Query function:
function selectDb($query) {
    $conn = connectDb();

    $result = $conn->query($query);
    if ($result === false) {
        die("查询失败: " . $conn->error);
    }

    $data = array();
    while ($row = $result->fetch_assoc()) {
        $data[] = $row;
    }

    $conn->close();

    return $data;
}
Copy after login
  1. Insertion, update, delete function:
function updateDb($query) {
    $conn = connectDb();

    if ($conn->query($query) === true) {
        $status = true;
    } else {
        $status = false;
    }

    $conn->close();

    return $status;
}
Copy after login

2. PDO query encapsulation function

When using PDO query, we can encapsulate the following query function:

  1. Connect database function:
function connectDb() {
    $host = "yourhost";
    $username = "yourusername";
    $password = "yourpassword";
    $dbname = "yourdbname";

    try {
        $conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
        // 设置 PDO 错误模式为异常
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e) {
        echo "连接失败: " . $e->getMessage();
    }
    
    return $conn;
}
Copy after login
  1. Query function:
function selectDb($query) {
    $conn = connectDb();

    $stmt = $conn->prepare($query);
    $stmt->execute();

    $data = array();
    while ($row = $stmt->fetch()) {
        $data[] = $row;
    }

    $conn = null;

    return $data;
}
Copy after login
  1. Insert, update, delete function:
function updateDb($query) {
    $conn = connectDb();

    $status = true;

    try {
        $conn->beginTransaction();

        $stmt = $conn->prepare($query);
        $stmt->execute();

        $conn->commit();
    } catch(PDOException $e) {
        $conn->rollBack();
        $status = false;
    }

    $conn = null;

    return $status;
}
Copy after login

By using the above two query encapsulation functions, we can greatly reduce queries The number of lines of code required by the database improves code efficiency and development efficiency.

Summary

In development, encapsulating functions is an indispensable part of improving code quality and development efficiency. When performing database query operations, we can use database query encapsulation functions to optimize the query code and improve development efficiency. The above package functions are for reference only, and readers can make changes and improvements according to specific project needs.

The above is the detailed content of PHP encapsulates a database query function. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template