我试图计算几个表中的行数,并分别回显结果。我尝试使用以下脚本,它返回$ table1count,t1c的原始值。它从不返回实际计数值。我认为语法是错误的,但是我在网上找到的所有信息都存在8-10年的历史。有人可以帮忙吗?
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbName = "database";
$table1count = 't1c';
$table2count = 't2c';
$conn = new mysqli ($servername, $username, $password, $dbName);
if(!$conn){
die("Connection failed. ". mysqli_connect_error());
}
$sql = "SELECT ";
$sql .= "(SELECT COUNT(*) FROM table1) AS $table1count, ";
$sql .= "(SELECT COUNT(*) FROM table2) AS $table2count; ";
$result = mysqli_query($conn ,$sql);
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)){
echo "table1count:" . $table1count . "|table2count:". $table2count . ";";
}
}
?>
答案 0 :(得分:0)
$table1count;
和$table2count;
必须具有值,然后才能在$sql
字符串中使用它们。只要它们是valid MySQL identifiers,值到底是什么都没关系。
$table1count = 't1c';
$table2count = 't2c';
我刚分配了一个类似于变量名的字符串,因为我没有创造力。
那些字符串将随查询一起传递给MySQL,在这里它们被用作计数查询结果的别名。别名将与查询结果一起返回,因此它们将是$row
返回的$row = mysqli_fetch_assoc($result)
数组中的键。
您可以使用$row
语句中的那些数组键访问echo
中的计数值。
echo "table1count:" . $row[$table1count] . "|table2count:". $row[$table2count] . ";";
此外,请确保从SQL字符串中删除该逗号,这将导致SQL语法错误。