PHP-mysqli连接失败的原因之一
我是php新手,有一点我不太懂。PHP-mysqli连接失败的原因之一,php,mysqli,Php,Mysqli,我是php新手,有一点我不太懂。 我的文件host.php导入配置并返回mysqli()的新实例 在另一个php文件中,当我尝试创建新连接时: try { $connection1 = require_once 'host.php'; $config = require_once 'config.php'; $connection2 = new mysqli($config['host'], $config['user'], $config['password'], $
我的文件
host.php
导入配置并返回mysqli()的新实例
在另一个php
文件中,当我尝试创建新连接时:
try {
$connection1 = require_once 'host.php';
$config = require_once 'config.php';
$connection2 = new mysqli($config['host'], $config['user'], $config['password'], $config['database']);
}
当我扔掉它的时候
var_dump($connection1);
var_dump($connection2);
我上了我的屏幕
bool(true)
及
host.php
文件包含的行与上面使用$config=…
编写的行完全相同,但它返回的不是$connection2
而是新的mysqli(…)
对象。
为什么这两个实例在初始化后返回其他值?
谢谢你帮我理解它:)要求不能返回。您必须在其他文件中设置$connection1=new mysqli。您需要使用return
从包含的文件中返回值。否则,它只会告诉您是否包含文件
在其中一个文件中,创建mysqli连接,并考虑到所需的三个步骤。不要添加任何“尝试捕捉”或任何其他噪音
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
$mysqli->set_charset('utf8mb4'); // always set the charset
return $mysqli;
并且require
返回true,因为它成功地找到并运行了文件,并且与代码本身无关。因此,为了更好地理解,iLife有助于不生成这些变量,只准备它们并返回,而不进行任何声明?这很有意义,因为这种方法对我很有效,但当我在少数文件中使用此$connection=require\u一次时,就发生了此错误。你的方法是很好的解决方案,我非常喜欢。谢谢你!IIFE只是在局部范围内定义变量的一种方式。是的,这是我所缺少的。这就是为什么我在返回的bool
中出现此错误的原因,我在全局范围内都遇到了此错误。感谢您的帮助和知识,这对我学习web开发是一个巨大的里程碑。祝福你:)
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
$mysqli->set_charset('utf8mb4'); // always set the charset
return $mysqli;
<?php
$conn = require_once 'mysqli.php';
return (function () {
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$config = require_once 'config.php';
$mysqli = new mysqli($config['host'], $config['user'], $config['password'], $config['database']);
$mysqli->set_charset('utf8mb4'); // always set the charset
return $mysqli;
})();