Php 2在同一文件上需要\u一次创建MySQL连接问题

Php 2在同一文件上需要\u一次创建MySQL连接问题,php,mysqli,Php,Mysqli,我有一个index.php: <?php require_once ('required1.php'); require_once ('required2.php'); --- some mysqli_query here --- ?> required1.php中的内容如下: <?php $DbServer = 'localhost'; $DbUser = 'username'; $DbPassword = 'password'; $DbName = 'dbname';

我有一个index.php:

<?php
require_once ('required1.php');
require_once ('required2.php');

--- some mysqli_query here ---
?>
required1.php中的内容如下:

<?php
$DbServer = 'localhost';
$DbUser = 'username';
$DbPassword = 'password';
$DbName = 'dbname';
$con = mysqli_connect($DbServer, $DbUser, $DbPassword, $DbName);
?>
这是required2.php:

<?php
require_once 'required1.php';

--- some mysqli_query here ---

mysqli_close($con);
?>
mysqli_close$con;在required2.php上,由于required2.php已关闭mysql连接,因此在index.php上的mysqli_查询失败

如何使required2.php独立工作?我的意思是,在required2.php文件上发生了什么,请把它放在那里。不要把任何东西带到其他调用它的文件中,特别是mysqli_close$con


有可能只需要一次吗?或者PHP有另一个函数来实现它?谢谢

在require2.php中使用不同的连接,或者不要关闭它。您还可以将其包含在底部。

使用mysqli\u close$con;在required2.php中关闭连接,因此在包含required2.php之后,$con将不可用


如果您希望required2.php是独立的,您必须使用另一个数据库连接,而不是$con。

首先,确实不需要关闭包含文件中的连接,可能有非常特殊的异常

如果您想独立地使用第二个include,您应该将其重构为OOP。如果它是一个通过构造函数依赖项注入来注入数据库连接的类,那么它只会向代码的其余部分显示它的名称,这样类或对象中发生的事情就不会影响代码的其余部分


当然,您仍然不应该关闭连接,因为该对象可能会通过引用传递,但使用对象/类而不是过程代码将使其更独立,更易于重用。

如果required2.php与您当前的脚本无关,但您需要做的就是按照您提到的运行脚本,我觉得您可以使用file调用required2.php文件。这将分别运行两个脚本,即使您在required2.php中关闭连接,也不会影响当前脚本。

您可以在required1.php中设置一个全局变量,并在required2中生成一个if语句。如果变量为ethi bro,如果您能给我展示一些示例,我将不胜感激。感谢.move require_once'required2.php';到index.php的底部!