我的代码存在问题,希望每个人都能帮助我。
这是我的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
请帮帮我。谢谢!
答案 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);