Require_once config.php不使用函数php

Require_once config.php不使用函数php,php,mysql,mysqli,Php,Mysql,Mysqli,我的代码有问题,希望大家能帮助我 这是我的config.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) { ec

我的代码有问题,希望大家能帮助我

这是我的config.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;
}
这是我的选择库

function SelectAdmin()
{
    $sql = "SELECT * from admin order by id ASC";
    $result=$mysqli->query($sql);
    return $result; 
}
然后,我在index.php中调用它

while ($rows = SelectAdmin()->fetch_assoc()) 
{ 
    echo $rows['Fullname'];
}
但它显示出错误

未定义变量:mysqli in\第8行的lib\select.php

请帮帮我。谢谢大家!

请尝试以下操作:

function SelectAdmin() {
    global $mysqli;//You need this !
    $sql = "SELECT * from admin order by id ASC";
    $result=$mysqli->query($sql);
    return $result; 
}

这是一个典型的范围问题

您在“main”范围中声明了
$mysqli
,我们称之为“level0”,现在您希望在
SelectAdmin()
中访问它。但是在该方法中没有定义
$mysqli
变量,因为在该方法中,您处于“级别1”

您可以通过将变量标记为全局:
global$mysqli
告诉
SelectAdmin()
在级别0使用该变量

或者更好的方法是,您可以定义一个
Connect()
方法,在每次需要时建立连接


因此,在
选择admin()
中,您必须调用
$mysqli=Connect()
,这应该适用于需要连接的每个方法。

将$mysqli传递给函数,以便它可以访问$mysqli变量

function SelectAdmin($mysqli) {
    $sql = "SELECT * from admin order by id ASC";
    $result=$mysqli->query($sql);
    return $result; 
}

如果这解决了问题,请将其标记为已接受(以便将来面临相同问题的人能够轻松发现)。您不应使用全局变量,而应将$mysqli变量传递给function@ArunKumaresh为什么?精心设计!!看到这个@ArunKumaresh好的,请帮我找出“不要使用”?因为没有!
function SelectAdmin($mysqli) {
    $sql = "SELECT * from admin order by id ASC";
    $result=$mysqli->query($sql);
    return $result; 
}