MySQL检查PHP中value等于x且y不为空的地方


MySQL check in PHP where value is equal to x and y is not empty

我试图在我的数据库中检查用户名=$username和名称字段不为空的地方。我不确定如何做到这一点,所以我对这方面的一些输入持开放态度。:)


PHP代码:

$isinuse_sql = mysql_query("SELECT * FROM users WHERE username='$username' AND (name IS NOT NULL OR name<>''");
if(mysql_num_rows($isinuse_sql) != 0) {
    $isinuse_row = mysql_fetch_assoc($isinuse_sql);
    $isinuse = $isinuse_row['name'];
    echo "1";
} else {
    echo "0";
}

试试这个:

"SELECT * FROM users WHERE username='$username' AND (name IS NOT NULL AND name!='')"

作为NULL值被解释为假,您可以检查名称的值,如

SELECT * FROM users WHERE username='$username' AND users.name<>''

使用mysqli代替sql查询,因为它是不赞成的,就像David Soussan说的

$con=mysqli_connect("localhost","root","","test");
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$username = 'a';
$sql="SELECT * FROM users WHERE username='$username' AND users.name<>''";
$result=mysqli_query($con,$sql);

$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
print_r($row);
mysqli_close($con);

我现在明白了,我真傻。如果它是一个空字符串,那么它不是null,所以当你想要false时,你可以通过OR得到true。

"SELECT * FROM users WHERE username='$username' AND name IS NOT NULL AND name<>''"

试试这个

"SELECT * FROM users WHERE username='$username' AND IFNULL(name, '') != '' "