注意:未定义的变量:函数中的链接



我正在尝试显示带有条件的SQL表中的行数。

viaturas有4条记录。我想计算estado列中有多少行匹配"Inoperacional">,在本例中为3条记录。


我在viaturas.php中创建了一个函数ViaturasNo((

<?php
function ViaturasInop()
{   
require_once "config.php";
$query = "SELECT * FROM `viaturas` WHERE `estado` LIKE 'Inoperacional'";
if ($result=mysqli_query($link,$query))
$rowcount=mysqli_num_rows($result);
return $rowcount;
mysqli_close($link);
}
echo ViaturasInop();
?>

如果运行viaturas.php,它将正确返回3


在页面中,我希望结果显示在HTML正文中index.php我有以下内容来调用函数:

<div class="h5 mb-0 font-weight-bold text-gray-800"><?php echo ViaturasInop(); ?></div>

然而,作为回报,我得到了以下错误:

注意:未定义的变量:第8行上的C:\php\viatura.php中的链接

警告:mysqli_query((要求参数1为mysqli,在第8行的C:\[…]\php\viatura.php中为null

注意:未定义的变量:第11行上C:\php\viatura.php中的rowcount


我尝试过其他选择,但总是会遇到同样的错误。

您应该never在函数中使用require_sonce来获得mysqli连接。

首先,顾名思义,它只能工作一次。

此外,即使您克服了这一限制,在每次函数调用中创建一个新连接也会破坏数据库服务器

相反,您必须在脚本顶部调用require_once "config.php";一次,然后使用$link变量来获得mysqli连接。为了在函数中建立连接,您必须将其作为函数参数传递:

<?php
function ViaturasInop($link)
{   
$query = "SELECT count(*) FROM `viaturas` WHERE `estado` = 'Inoperacional'";
$result=mysqli_query($link,$query);
$row = mysqli_fetch_row($result);
return $row[0];
}

现在,在索引文件的顶部添加

require_once "config.php";

然后放入

echo ViaturasInop($link);

只要你需要号码

最新更新