检查mysql表php中是否存在任何记录

时间:2013-01-08 06:49:08

标签: php mysql

我创建了以下功能;

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

该值为true或false。但问题是如果行是空的,行数仍然是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;
}

5 个答案:

答案 0 :(得分:3)

使用mysql_num_rows($ result)代替count($ result)谢谢。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

请将条件更改为....

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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;
}

感谢你们所有人..

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