如何检测mysql数据库列是否包含文本或为空

2wnc66cl  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(295)

基本上,我想检测数据库列是空的还是包含文本。文本不必是特定的集合文本,只需文本即可。
如果列为空,则用php显示一条消息。
我尝试过使用有问题的行,但仍然在学习php,所以不太确定如何解决这个问题。 if ($row['insert_time'] contains "") then {echo "The row contains no text"}; 如果列 insert_time 不包含文本,我希望它显示“无结果”或让用户知道没有文本。
如果列 insert_time 包含文本,然后它将显示我发现在我的案例中有用的函数的其余部分。
我使用以下连接到数据库:;

$link = mysqli_connect("localhost", "root", "", "chaotic");
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error() . " Please enter correct details in the install/config file.");
}

?> ```
不过,insert\u time是为date和time设置的,但是对于给我测试的数据库导出文件,它包含2个没有insert\u time的条目。因此,在以后的参考中,我希望让用户知道状态未知或类似,而不是php将其显示为空表行。
我还忘了提到的是,我正在使用一个来自web的脚本来实现“facebook time ago”功能,它的设置是正确的,但是如果空数据库列不包含任何内容,它会自动将表行设置为46年。
jljoyd4f

jljoyd4f1#

因为从数据库返回的值总是字符串(除非是 NULL ),可以检查值的长度是否为0个或更多字符。
因为php很弱,输入这样的if语句。。。 if ($row['insert_time'] == "") { } 会变成 true 即使在什么时候 $row['insert_time'] 包含的值 0 (又名非空)。
因此,最好根据上面的第一点执行评估(检查值的长度)。就像这样。。。

if (strlen($row['insert_time']) > 0) { 
    echo $row['insert_time']; 
}
else {
    echo "No Results";
};
wfauudbj

wfauudbj2#

你想用php检查条件吗

if (isset($row['insert_time']) && $row['insert_time'] != ''){ 
    echo $row['insert_time']; 
}else{
    echo "The row contains no text";
};

相关问题