首页 > 数据库 > mysql教程 > 如何从不同的 PHP 类正确访问 MySQLi 数据库连接?

如何从不同的 PHP 类正确访问 MySQLi 数据库连接?

Mary-Kate Olsen
发布: 2024-12-18 02:29:09
原创
493 人浏览过

How Can I Properly Access a MySQLi Database Connection from Different PHP Classes?

从 PHP 中的其他类访问 MySQLi 连接

从 PHP 5.6 升级到 7.0 时,从 MySQL 过渡到 MySQLi 至关重要。这种转变可能会带来挑战,特别是在尝试从不同的类访问 MySQLi 连接时。这个问题强调了这样一种情况,即尝试使用数据库类从 API 类连接到数据库会导致内部服务器错误。

问题的根源在于遵守良好的编程实践。从数据库类扩展用户是不正确的,并且数据库类本身缺乏重要的功能。要解决此错误并改进整体设计,请考虑以下步骤:

  1. 消除冗余的数据库类。它没有特定目的,并引入了不必要的复杂性。
  2. 从普通 MySQLi 创建单个 $db 实例。该实例将作为所有数据库操作的中央连接点。
  3. 将 $db 实例作为构造函数参数传递给每个需要数据库连接的类。通过执行这些步骤,您可以建立一个更干净且更易于维护的代码库。更新后的代码结构可能类似于:
database.php
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
登录后复制
myapi.php
<?php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        $sql = "SELECT * FROM users where>
登录后复制
app.php
<?php
require 'vendor/autoload.php'; // autoloading is recommended

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);
登录后复制

以上是如何从不同的 PHP 类正确访问 MySQLi 数据库连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板