PHP num_行不工作

PHP num_行不工作,php,Php,我正在尝试获取数据库中的行数。如果行数大于0,脚本需要回显1或更多如果行数为0,脚本应回显0 但脚本不起作用 当行数为1时,我得到一个或多个。当行数为0时,我仍然会得到一个或多个 有人知道什么地方出了问题,我该如何解决 这是我的剧本: $sql = "SELECT id FROM table WHERE status='1' "; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row =

我正在尝试获取数据库中的行数。如果行数大于0,脚本需要回显
1或更多

如果行数为0,脚本应回显
0

但脚本不起作用

当行数为1时,我得到一个或多个
。当行数为0时,我仍然会得到一个或多个

有人知道什么地方出了问题,我该如何解决

这是我的剧本:

$sql = "SELECT id FROM table WHERE status='1' ";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo    "<p>1 or more</p>";
  }                   
} else {

  echo "<p>0</p>";
}
$conn->close();
$sql=“从status='1'所在的表中选择id”;
$result=$conn->query($sql);
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
回声“1个或多个”

”; } }否则{ 回声“0

”; } $conn->close();
如果您使用的是mysqli,num_行应该可以工作,但如果您使用的是prepared语句,这将不起作用。 如果不打印从表中获得的结果,则无需获取表。如果查询成功,则num_行将正常工作。在
$result
上打印\r,如果存在数组,则num\u行将起作用。否则,请尝试使查询可执行

    $sql = "SELECT id FROM table WHERE status='1' ";
    $result = $conn->query($sql);

       if ($result->num_rows > 0) {
              echo    "<p>1 or more</p>";                  
        } else {

               echo "<p>0</p>";
        }
       $conn->close();
$sql=“从status='1'所在的表中选择id”;
$result=$conn->query($sql);
如果($result->num_rows>0){
回声“1个或多个”

”; }否则{ 回声“0

”; } $conn->close();
我建议你使用准备好的陈述阅读更多关于准备好的陈述
您的代码看起来不错。只要尝试回显结果,就可以准确地知道显示了多少结果。我怀疑您的结果正在检索0个结果

请参阅W3教程


1st:如果
query
执行
失败
意味着它将返回简单的
boolean
false
,因此您无法从该
boolean
值中获取
num\u rows

下面的代码将帮助您

$sql = "SELECT id FROM table WHERE status='1' ";
    if($result = $conn->query($sql))
    {
       if ($result->num_rows > 0) 
       {
              echo    "row count is :".$result->num_rows;                  
        } 
        else 
        {
               echo "query execution success but there is no match result ";
        } 
    }
    else
    {
         echo "query execution failed";
         echo $conn->error; 
    }
注意:在查询中,您需要指定正确的
表名
,而不是
表关键字

"SELECT id FROM table_name WHERE status='1' "

我觉得很好。你的代码看起来很完美。在查询执行之后,您是否尝试了
echo$result->num_rows
$result=$conn->query($sql)?是的,我给回声添加了颜色。我用绿色和
$result->num_rows
内部id替换了
1或更多的`行。我也用
0

进行了替换。第二个回声的颜色是红色。如果结果为0,则得到绿色。当结果为1时,我也得到了绿色,在这里看不到任何错误。尝试清除浏览器缓存。是否显示您的表结构和数据?我正在使用mysqliThen首先尝试此操作,并告诉您得到的结果是什么
print\r($result)
"SELECT id FROM table_name WHERE status='1' "