【问题标题】:checking if any record exists in mysql table php检查mysql表php中是否存在任何记录
【发布时间】:2012-12-21 23:45:26
【问题描述】:

我已经创建了下面的函数;

要检查数据库中是否存在记录,如果记录存在则应返回 true,否则返回 false,并且当前返回行的第四列,即字段 $row['isannounced']。

该值为真或假。但问题是如果该行是空的,行数仍然是 1。有没有更好的方法来处理这个问题?

提前致谢。

function isnotificationannounced($dspid, $clldsq, $clldtm){
//echo 'in : isnotificationannounced<br>';

$res=false;
$qry = "SELECT * FROM tbl_maindisplay_notification where (clldsq='$clldsq' AND clldtm='$clldtm' AND dspid='$dspid')";
//echo $qry;
    $result = querydb($qry);
    if ($result) {
        $row = mysql_fetch_array($result);
        //echo 'row data:<br>';print_r($row);
        if(count($row)>0){
                $res=$row[4];
                //print_r($row);
        }           
    } else {
        die("existsindb: Query failed");
    }
    unset($clldsd, $clldtm, $tdcode);
return $res;
}

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    使用 mysql_num_rows($result) insted of count($result)

    谢谢。

    【讨论】:

      【解决方案2】:

      使用 select * ,您正在查询完整的表格内容。

      尝试使用 select count(*) from ,并检查返回值。

      【讨论】:

        【解决方案3】:

        请把条件改成这个....

        if(count($row)>0 && $row[4] != ""){
                        $res=$row[4];
                        //print_r($row);
                }  
        

        【讨论】:

          【解决方案4】:

          我认为你需要看看这篇文章: MySQL SELECT only not null values

          引入第二个条件来检查值是否不为空。

          【讨论】:

            【解决方案5】:
            function isnotificationannounced($dspid, $clldsq, $clldtm){
            //echo 'in : isnotificationannounced<br>';
            
            $res=false;
            $qry = "SELECT * FROM tbl_maindisplay_notification where (clldsq='$clldsq' AND clldtm='$clldtm' AND dspid='$dspid')";
            //echo $qry;
                $result = querydb($qry);
                if ($result) {
                    $row = mysql_fetch_array($result);
                    //echo 'row data:<br>';print_r($row);
                    if(empty($row)){
                        $res=true;
                    }else{
                            $res=$row[4];
                            //print_r($row);
                    }
            
                } else {
                    die("existsindb: Query failed");
                }
                unset($clldsd, $clldtm, $tdcode);
            return $res;
            }
            

            谢谢大家..

            我已将代码更新到上面,如果您有任何建议/建议,请告诉我。

            【讨论】:

            • 此函数返回错误信息; $row 有时是空的,而我知道该记录存在于 db 中。任何人都可以帮助我,因为我需要准确的信息。我实际上在做什么;首先,我今天每 5 秒从表 A 中获取数据,最多 100 条记录。然后在另一个表 B 中检查它,如果它存在于表 B 中并且是否已宣布..
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-27
            • 2014-01-19
            • 2011-02-17
            • 2015-03-31
            • 2011-02-20
            相关资源
            最近更新 更多