首页 > 后端开发 > php教程 > 如何在 PHP 7.0 中从外部类访问 MySQLi?

如何在 PHP 7.0 中从外部类访问 MySQLi?

Susan Sarandon
发布: 2024-10-26 08:21:30
原创
220 人浏览过

How to Access MySQLi from an External Class in PHP 7.0?

从 PHP 中的外部类访问 MySQLi

问题:

从 PHP 升级后从 5.6 到 7.0,使用 MySQL 和 MyAPI 类的现有设置遇到了问题。具体来说,从 MyAPI 类访问数据库连接会导致 500 内部服务器错误。

解决方案:

有几种做法会导致此错误:

  1. 避免继承:从数据库类扩展 MyAPI 是多余且不必要的。
  2. 删除冗余数据库类:数据库类没有实际用途目的,因为它主要建立一个连接,这可以通过普通 mysqli 类轻松实现。
  3. 创建集中式数据库实例: 建立数据库连接的单个全局实例并将其传递到每个需要数据库访问的类。

代码结构:

创建三个文件:

  • 数据库。 php:包含数据库连接逻辑。
  • myapi.php:定义具有数据库连接依赖注入的 MyAPI 类。
  • app.php:包含数据库连接逻辑。 php
  • :作为入口点并实例化 MyAPI 类,传递数据库连接。

database.php:

<code class="php"><?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');</code>
登录后复制

myapi.php:

<code class="php"><?php
class MyAPI
{
    protected $db;

    public function __construct($db)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        // Define SQL query and subsequent operations to fetch user data.
    }
}</code>
登录后复制

app.php:

<code class="php"><?php
require 'database.php';
require 'myapi.php';

$api = new MyAPI($db);
$user = $api->getUser($_POST['id']);</code>
登录后复制

通过遵循这些准则并将数据库关注点与类功能分开,可以有效解决外部类访问MySQLi的问题。

以上是如何在 PHP 7.0 中从外部类访问 MySQLi?的详细内容。更多信息请关注PHP中文网其他相关文章!

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