如何从 PHP 中的单独类访问 MySQLi
尝试从单独的类建立数据库连接时遇到错误在 PHP 中使用 MySQLi。当您尝试访问连接对象时,错误为“Internal Server Error 500”,这表明您的代码或配置存在问题。
要解决此问题,让我们分析代码并确定关键点:
数据库类:
数据库类包含连接数据库的必要信息,例如服务器名称、用户名、密码和数据库名称。
API 类:
在 API 类中,您可以使用 new Database() 初始化 $db 属性。这将建立一个新的数据库连接对象,该对象与数据库类的 __construct 方法中创建的连接不同。
函数调用:
然后您尝试使用 $this->db->conn 对象执行查询,该对象在 MyAPI 类中未定义。这是因为 $conn 属性仅在 Database 类中定义。
解决方案:
要访问 MyAPI 类中的数据库连接对象,需要通过创建数据库的新实例时将其作为构造函数参数。
以下是更正后的代码:
Database.php:
<code class="php">class Database { private $conn; public function __construct() { $this->conn = new mysqli(...connection details...); } public function getConn() { return $this->conn; } }</code>
MyAPI.php:
<code class="php">class MyAPI { private $db; public function __construct($db) { $this->db = $db; } public function getUser($id) { $sql = ...query...; $result = mysqli_query($this->db->getConn(), $sql); return mysqli_fetch_assoc($result); } }</code>
app.php:
<code class="php">$db = new Database(); $api = new MyAPI($db); $user = $api->getUser($_POST['id']);</code>
此方法确保可以在 MyAPI 中访问数据库连接对象类,允许您成功执行查询并检索数据。
以上是为什么在 PHP 中从单独的类访问 MySQLi 连接时会收到'500 内部服务器错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!