2011-04-01 90 views
1

下面的函数应该是什么逻辑?查询字段是否为空

function check_empty($field){ 
    $this->_params(); 
    $db = $this->getDb(); 
    $milestone = $db->select() 
    ->from('milestone') 
    ->where("$field IN ('')") 
    ->where("name = ?", $this->milestone['name']); 

    $milestone_stmt = $db->query($milestone); 
    echo $milestone->__toString(); 
    $milestone_result = $milestone_stmt->fetchAll(); 

    if(count($milestone_result) > 0) { 
    return true; 
    } else { 
    return false; 
    } 
} 

这是用来检查一个字段是否为空的函数。如果该字段原本是字段,并且在删除表单中的内容的情况下更新,则其他函数应该插入表格 ,但不插入。

+0

我只是新。这就是为什么。我也在现场。 – Efox 2011-04-01 04:58:15

+0

不,我的意思是你问了6个问题,但你没有接受任何答案。在每个答案的左上角,你都有'滴答'图标。如果您认为这是您的问题的正确答案,请点击此处。 – 2011-04-01 05:01:19

回答

1

查询将返回true,如果它不能匹配任何行,否则为false:

function check_empty($field) { 
    $this->_params(); 
    $db = $this->getDb(); 
    $milestone = $db->select() 
        ->from('milestone') 
        ->where("$field = ''") 
        ->where("name = ?", $this->milestone['name']); 
    $milestone_stmt = $db->query($milestone); 

    //No query results means the field is not empty. 
    return $milestone_stmt === false; 
} 
+0

是否有可能存在非空或特殊字符或结果的结果? – Efox 2011-04-02 01:12:12

+0

@efox它可能是一个声明或错误。如果“$ milestone_stmt”不是false,则表达式“milestone_stmt === false”将返回“false” – chriso 2011-04-02 01:50:42