MySQL表中的行数?

时间:2014-04-28 07:27:10

标签: php mysql

谁能告诉我这里做错了什么?这段代码没有回应任何东西。 我希望在$tag字段中看到包含urlslug的行数

<?php

$query = mysqli_query($mysqli, "SELECT * FROM tags WHERE urlslug='$tag'");
$num_rows = mysql_num_rows($query);
echo $num_rows;

谢谢! :)

6 个答案:

答案 0 :(得分:5)

您正在使用mysqli_query功能,但之后您拥有deprecated mysql_num_rows功能。请改为mysqli_num_rows

答案 1 :(得分:2)

选择表中的所有内容,计算它,然后再将其丢弃,效率不高。您应该使用MySQL COUNT函数来计算行数:

$result = mysqli_query($mysqli, "SELECT COUNT(*) as numRows FROM tags WHERE urlslug='$tag'");
$data = mysqli_fetch_array($result);
var_dump($data);

答案 2 :(得分:1)

试试这个

  

mysqli_num_rows($查询)

答案 3 :(得分:0)

试试这个

<?php

$query = mysqli_query($mysqli, "SELECT * FROM tags WHERE urlslug='$tag'");
$num_rows = mysqli_num_rows($mysqli,$query);
echo $num_rows;

?>

答案 4 :(得分:0)

我和@Sverri M. Olsen的回答Number of rows in a MySQL table?

当你COUNT(*)计入列索引时,它将是最好的结果。带有MyISAM引擎的Mysql实际上存储行数,每次尝试计算所有行时都不计算所有行。 (基于主键的列)

如果COUNT(*)速度很慢,您应该对查询运行EXPLAIN,并检查是否真正使用了索引,以及它们应该添加到何处。

@Sverri M. Olsen

和+1

答案 5 :(得分:-2)

试试这个

$query = mysqli_query($mysqli, "SELECT * FROM tags WHERE urlslug='".$tag."'");
$num_rows = mysqli_num_rows($query);
echo $num_rows;