Require_once config.php无法使用php

时间:2016-07-12 04:15:12

标签: 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) {
  echo "Errno: " . $mysqli->connect_errno . "<br />";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}

我需要它与index.php一起使用函数lib,如

require_once("config.php");
require("lib/select.php");

这是我的选择库

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'];
}

但它显示错误

  

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

请帮帮我。谢谢!

3 个答案:

答案 0 :(得分:0)

这是一个经典的范围问题。

您在&#34; main&#34;中声明了$mysqli范围,我们称之为&#34; 0级&#34;,现在您想要在SelectAdmin()中访问它。但是在该方法中没有定义$mysqli变量,因为在该方法中,您处于&#34; 1级&#34;。

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

或者甚至更好,您可以定义一个Connect()方法,每次需要时都会建立连接。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-2)

请试试这个:

$('#search').keyup(function() {
var searchField = $('#search').val();
var output = '<ul class="searchresults">';
$.get('products.json', function(data) {
    jQuery.each(data.colors, function(i, val) {
        jQuery.each(val, function(i1, val1) {
            if(i1==searchField){
                output += '<li>' + val1 + '</li>';
            }
        });  
    });
    output += '</ul>';
});
$('#result').html(output);