2009-12-27 195 views
0

我想检查列是否包含表中的任何字段值。检查字段值是否存在?

因为我想获得栏中的字段值并对它们做些什么,但首先我要检查它们是否存在。

我曾尝试:

$query = "SELECT anonymous_username FROM users"; 
$result = mysqli_query($conn, $query) or die ("Couldn't execute query: " . mysqli_error($conn)); 

if(mysqli_num_rows($result) > 0) 
{ 
while($row = mysqli_fetch_assoc($result)) 
{ 
    echo "exists"; 
} 
} 

但即使所有该列的领域是空,回送的“存在”。所以我该怎么做呢?

编辑:谷歌是您的朋友:

$query = "SELECT anonymous_username FROM users WHERE anonymous_username <> '' AND anonymous_username IS NOT NULL"; 
+0

你确定特定线路回应“存在”? – Gumbo 2009-12-27 22:55:10

+0

是的,我现在找到了解决方案..我更新后的文章 – ajsie 2009-12-27 22:58:12

+0

而不是在数据层上处理它,你可以在业务层上做你的逻辑,你做类似的事情:if(!isset($ row)) {//你的逻辑}。 – 2009-12-27 23:01:50

回答

1

如果你正在寻找检查是否有行有非空,非空anonymous_username列,您可以:

SELECT count(*) as Num 
FROM users 
WHERE LENGTH(anonymous_username) > 0 

在PHP中,你可以检索像数:

$result = mysql_query($sql); 
$row = mysql_fetch_assoc($result); 
$rowcount = $row['num']; 
3

mysqli_affected_rows是只对变化像INSERTUPDATEREPLACEDELETE数据的查询。对于SELECT使用mysqli_num_rows

+0

但它仍然没有帮助,因为结果仍然是1.它得到的领域虽然它是空的。基本上我想检查一列中的任何字段是否有值。 – ajsie 2009-12-27 22:48:18