我正在尝试创建一个函数来计算我的 MySQL 数据库中不同的表行。我有下面的脚本,但是在执行的时候,会产生一个错误,说变量$con
没有设置,但是设置了。所以我的问题是如何在这个声明中使用“全局”?
function countrows($rows){
$sql = mysqli_query($con,"SELECT * FROM $rows");
$num_rows = mysqli_num_rows($sql);
echo $num_rows;
}
如果$con
在全局范围内定义(也就是说,它不是在任何其他函数内创建的),则进行此调用:
global $con;
作为该函数的第一行。
您也可以将其作为函数参数传递:
function countrows($rows, $con){
...
}
这是你如何做到的:
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 中高效完成。