检查字段值是否存在?
问题描述:
我想检查列是否包含表中的任何字段值。检查字段值是否存在?
因为我想获得栏中的字段值并对它们做些什么,但首先我要检查它们是否存在。
我曾尝试:
$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";
答
如果你正在寻找检查是否有行有非空,非空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'];
答
mysqli_affected_rows
是只对变化像INSERT
,UPDATE
,REPLACE
或DELETE
数据的查询。对于SELECT
使用mysqli_num_rows
。
+0
但它仍然没有帮助,因为结果仍然是1.它得到的领域虽然它是空的。基本上我想检查一列中的任何字段是否有值。 – ajsie 2009-12-27 22:48:18
你确定特定线路回应“存在”? – Gumbo 2009-12-27 22:55:10
是的,我现在找到了解决方案..我更新后的文章 – ajsie 2009-12-27 22:58:12
而不是在数据层上处理它,你可以在业务层上做你的逻辑,你做类似的事情:if(!isset($ row)) {//你的逻辑}。 – 2009-12-27 23:01:50