首页 >后端开发 >php教程 >以下是一些标题选项,请记住问题格式并重点关注 MySQLi 问题: **直接简洁:** * **为什么我无法从单独的类访问我的 MySQLi 连接?** * **我的S

以下是一些标题选项,请记住问题格式并重点关注 MySQLi 问题: **直接简洁:** * **为什么我无法从单独的类访问我的 MySQLi 连接?** * **我的S

Barbara Streisand
Barbara Streisand原创
2024-10-25 12:52:30564浏览

Here are a few title options, keeping in mind the question format and focus on the MySQLi issue:

**Direct and Concise:**

* **Why Can't I Access My MySQLi Connection from a Separate Class?**
* **MySQLi Connection Issues: Accessing from a Different Class

如何在 PHP 中使用单独的类中的 MySQLi

简介

从 PHP 升级5.6 到 7.0 需要从 MySQL 切换到 MySQLi,这可能会破坏现有设置。本文解决了尝试从单独的类访问 MySQLi 连接时遇到的问题。

问题

程序员尝试访问在数据库类中创建的 MySQLi 连接从 API 类,调用连接时遇到内部服务器错误 (500)。但是,直接在 API 类中连接解决了该问题。

解决方案

建议的一些更改可以纠正该问题:

  • 消除数据库类:数据库类是多余的,因为它缺乏功能。
  • 创建单个 MySQLi 实例:使用本机 mysqli 类建立单个 MySQLi 实例。
  • 将实例作为参数传递:将 MySQLi 实例作为构造函数参数注入到需要数据库连接的类中。

示例代码:

database.php:

<code class="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">class MyAPI
{
    protected $db;

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

app.php:

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

$api = new MyAPI($db, $request_uri, $postData, $origin);</code>

以上是以下是一些标题选项,请记住问题格式并重点关注 MySQLi 问题: **直接简洁:** * **为什么我无法从单独的类访问我的 MySQLi 连接?** * **我的S的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn