我有这个index.php:
<?php
require_once ('required1.php');
require_once ('required2.php');
--- some mysqli_query here ---
?>
里面有什么必需品。这是:
<?php
$DbServer = 'localhost';
$DbUser = 'username';
$DbPassword = 'password';
$DbName = 'dbname';
$con = mysqli_connect($DbServer, $DbUser, $DbPassword, $DbName);
?>
这是必需的2.php:
<?php
require_once 'required1.php';
--- some mysqli_query here ---
mysqli_close($con);
?>
required2.php上的mysqli_close($con);
使index.php上的mysqli_query失败,因为mysql连接已经被required2.php关闭。
如何使required2.php独立工作?我的意思是,在该文件上发生的事情(required2.php)将它留在那里。不要将任何内容带入调用它的其他文件中,特别是mysqli_close($con);
是否可以使用require_once?或PHP有另一个功能,使它像那样?谢谢!
答案 0 :(得分:0)
在require2.php
中使用其他连接或不关闭它。您也可以将其包含在底部。
答案 1 :(得分:0)
在mysqli_close($con);
中使用required2.php
关闭了连接,因此在包含required2.php
之后,$con
将无法使用。
如果您希望required2.php
独立,则必须使用其他数据库连接,而不是$con
。
答案 2 :(得分:0)
首先,实际上不需要关闭所包含文件中的连接(可能存在非常具体的例外情况......)。
如果您想独立使用第二个包含,则应将其重构为OOP。如果它是一个通过其构造函数注入数据库连接的类(依赖注入),它只会向代码的其余部分显示其名称,以便在类或对象中发生的事情不会影响代码的其余部分。
当然你仍然不应该关闭你的连接,因为该对象可能会被引用传递,但是使用对象/类而不是过程代码将使它更加独立于可重用。
答案 3 :(得分:-1)
如果required2.php与您当前的脚本无关,但您需要做的就是按照您提到的那样运行脚本,我觉得您可以使用file()调用文件required2.php。这将分别运行两个脚本,即使您在required2.php中关闭连接,它也不会影响当前脚本。