简体   繁体   English

MySQL在PHP中检查值等于x并且y不为空

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

I'm trying to to a check in my database where username=$username and where the name field isn't empty. 我正在尝试检查我的数据库,其中username = $ username且name字段不为空。 I'm not sure how to do this, so I am open for some input on this. 我不确定如何执行此操作,因此我愿意为此提供一些意见。 :) :)


PHP CODE: 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!='')"

Oh I see now, silly me. 哦,我明白了,愚蠢的我。 If it is an empty string it is not null so you get true with an OR when you want false. 如果它是一个空字符串,则它不为null,因此当您要为false时可以使用OR来实现。

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

尝试这个

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

as NULL value is interpreted as a false you can check value of name like 因为NULL值被解释为false,所以您可以检查name的值,例如

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

use mysqli instead of sql query as it is deprecated like David Soussan said 使用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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM