我的代码有问题,希望大家能帮助我。
这是我的配置.php
$host = "localhost";
$db_user = "root";
$db_pass = "vertrigo";
$db_name = "DBname";
$mysqli = new mysqli($host, $db_user , $db_pass, $db_name);
mysqli_set_charset($mysqli, 'UTF8');
if ($mysqli->connect_errno) {
echo "Errno: " . $mysqli->connect_errno . "<br />";
echo "Error: " . $mysqli->connect_error . "'n";
exit;
}
我需要它进入索引.php函数库像
require_once("config.php");
require("lib/select.php");
这是我选择的库
function SelectAdmin()
{
$sql = "SELECT * from admin order by id ASC";
$result=$mysqli->query($sql);
return $result;
}
然后,我在索引中调用它.php
while ($rows = SelectAdmin()->fetch_assoc())
{
echo $rows['Fullname'];
}
但它显示错误
未定义的变量:mysqli 在 .... ''lib''select.php 在第 8 行
请帮助我。谢谢!
这是一个经典的范围问题。
您在"主"范围内声明了$mysqli
,我们称之为"级别 0",现在您想在 SelectAdmin()
中访问它。但是该方法中没有定义$mysqli
变量,因为在该方法中,您处于"级别 1"。
标记为全局变量来告诉SelectAdmin()
在级别 0 使用该变量:global $mysqli
。
或者更好的是,您可以定义一个Connect()
方法,以便在每次需要时建立连接。
因此,在SelectAdmin()
中,您将必须调用$mysqli = Connect()
并且应该适用于需要连接的每种方法。
将
$mysqli传递给函数,以便它可以访问$mysqli变量
function SelectAdmin($mysqli) {
$sql = "SELECT * from admin order by id ASC";
$result=$mysqli->query($sql);
return $result;
}
请尝试以下操作:
function SelectAdmin() {
global $mysqli;//You need this !
$sql = "SELECT * from admin order by id ASC";
$result=$mysqli->query($sql);
return $result;
}