MYSQL行计数为NULL,但我需要显示0


MYSQL row count is NULL but I need to display 0

我在PHP中有一个简单的行计数。当找不到行时,我需要$sfideRicevute为"0",但此查询不返回任何信息。

PHP:

<?php
    $sql = "SELECT * FROM `match` WHERE show_id = $showid AND w02 = $id AND status = 'sfida'";
    if ($result = mysql_query ("$sql")){
        while ($row=mysql_fetch_array ($result)) {
?>
<? $sfideRicevute = mysql_num_rows($result); ?>
<? echo $sfideRicevute; ?>

感谢您帮助

echo intval($sfideRicevute);

echo (int) $sfideRicevute

两者都将值强制转换为整数0。在php"0"中,false、0、null都将以这种方式转换为int 0。

1,true和其他数字将保持其值,然而,我不知道这是否立即清楚:)

请查看http://php.net/manual/en/language.types.type-juggling.php了解更多信息。

从PHP文档中mysql_num_rows返回的内容:

成功时结果集中的行数,失败时为FALSE。

它应该返回0,如果不是,那么查询可能有问题。

还要注意,不建议使用这些mysql_函数,因为它们将从php中删除,请参阅http://nl3.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated

第二:您是否考虑过SQL注入,因为您将一个变量直接放入查询中,这也是不推荐的,对于上面链接中提到的替代方案来说也是不必要的。

您可以查看$sfideRicevute的值,如果为null,则显示0。

echo $sfideRicevute == null ? 0 : $sfideRicevute;