0

我正在尝试创建一个函数来计算我的 MySQL 数据库中不同的表行。我有下面的脚本,但是在执行的时候,会产生一个错误,说变量$con没有设置,但是设置了。所以我的问题是如何在这个声明中使用“全局”?

function countrows($rows){
$sql = mysqli_query($con,"SELECT * FROM $rows");
$num_rows = mysqli_num_rows($sql);
echo $num_rows;
}
4

2 回答 2

0

如果$con在全局范围内定义(也就是说,它不是在任何其他函数内创建的),则进行此调用:

global $con;

作为该函数的第一行。

您也可以将其作为函数参数传递:

function countrows($rows, $con){
    ...
}
于 2013-10-06T00:45:07.357 回答
0

这是你如何做到的:

function countrows($rows){
    global $con;
    $sql = mysqli_query($con,"SELECT * FROM $rows");
    $num_rows = mysqli_num_rows($sql);
    echo $num_rows;
}

顺便说一句,如果表很大,我建议使用SELECT COUNT(*)而不是SELECT *. 后者需要下载表的全部内容才能计算行数,前者通常可以在 SQL 中高效完成。

于 2013-10-06T00:48:51.053 回答