我正在尝试使用PHP查看基于SQL查询的行数。
我似乎能够查询数据库并从一行返回字段,但似乎无法根据同一查询找出有多少行。
<?php
$host = 'localhost';
$user = 'MyUsername';
$pass = 'MyPassword';
$database = 'MyDatabase';
$con=mysqli_connect($host,$user,$pass ,$database);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM MyTable WHERE test='123' AND test2='456'");
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
mysqli_close($con);
?>
它返回的全部是屏幕上的文字行,没有开头的行数。
就像我说的,如果我尝试使用:
选择一行,同样的查询将起作用并返回一个值while($row = mysqli_fetch_array($result))
{
echo $row["test"];
}
任何人都知道为什么它不会返回行数?
答案 0 :(得分:4)
您正在使用MySQLi。由于您没有mysql查询,mysql_num_rows不会返回所需的值。 你必须用mysqli equal:
替换你的mysql函数$num_rows = mysqli_num_rows($result);
答案 1 :(得分:1)
您正在使用Mysqli
,您应该使用mysqli_num_rows
$ result = mysqli_query($ con,“SELECT * FROM MyTable WHERE test ='123'AND test2 ='456'”); $ num_rows = mysqli_num_rows($ result);
如果您只想count
,那么您可以直接使用count(*)
,如下所示: -
$ result = mysqli_query($ con,“SELECT COUNT(*)FROM MyTable WHERE test ='123'AND test2 ='456'”);
echo $ result;
答案 2 :(得分:1)
我会做这样的事情:
$result = mysqli_query($con,"SELECT COUNT(*) FROM MyTable WHERE test='123' AND test2='456'");
echo $result