如何在PHP中检查mySQL数据库中的字段是否为空
我想知道如何检查特定用户的字段(列)是否为空 我已成功连接到mySQL数据库,输入了一个用户,字段为空。我有一个post表单,允许用户输入信息。根据其他字段是否为空,我希望它们相应地填充。我想使用逻辑来确定字段是否为空。我正在使用以下工具:如何在PHP中检查mySQL数据库中的字段是否为空,php,mysql,Php,Mysql,我想知道如何检查特定用户的字段(列)是否为空 我已成功连接到mySQL数据库,输入了一个用户,字段为空。我有一个post表单,允许用户输入信息。根据其他字段是否为空,我希望它们相应地填充。我想使用逻辑来确定字段是否为空。我正在使用以下工具: if($_SERVER['REQUEST_METHOD'] == 'POST') { if(trim($_POST['listing_link']) == '') { } else if(empty($listing_link1))
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(trim($_POST['listing_link']) == '') {
}
else if(empty($listing_link1)) {
$listing_link1 = $_POST['listing_link'];
$listing_link1 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link1`='$listing_link1'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link1) && empty($listing_link2)) {
$listing_link2 = $_POST['listing_link'];
$listing_link2 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link2`='$listing_link2'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link2) && empty($listing_link3)) {
$listing_link3 = $_POST['listing_link'];
$listing_link3 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link3`='$listing_link3'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link3) && empty($listing_link4)) {
$listing_link4 = $_POST['listing_link'];
$listing_link4 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link4`='$listing_link4'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link4) && empty($listing_link5)) {
$listing_link5 = $_POST['listing_link'];
$listing_link5 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link5`='$listing_link5'
WHERE `email`='$emailstring'";
}
$result = mysql_query($query);
}
?>
此代码检查用户在点击“列表链接”按钮时是否输入了任何内容。如果没有,那么什么也不会发生。如果输入了某个内容,它将进行检查以确定是否有任何其他字段被填充(清单\u link1、清单\u link2……清单\u link5)。$listing_link1-5变量应该包含这些信息
除以下情况外,我无法运行其他IF:
else if(empty($listing_link1)) {
$listing_link1 = $_POST['listing_link'];
$listing_link1 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link1`='$listing_link1'
WHERE `email`='$emailstring'";
通过点击表单的按钮来持续运行代码,只需用新输入的信息替换列表中的链接1变量
也许这里写的逻辑有问题。如果可以的话,请帮忙 在检查是否为空之前,您不会定义
$listing\u link1
:
else if(empty($listing_link1))
{
$listing_link1 = $_POST['listing_link'];
把它们翻过来:
$listing_link1 = $_POST['listing_link'];
if(empty($listing_link1))
{
如果我猜对了,这会解决你的问题:
$empty = 0;
for($i=1; $i<=5; $i++){
$varname = "listinglink$i";
if(empty($$varname)){
$empty = $i;
break;
}
}
if($empty > 0){
$update_field = "listinglink{$empty}";
$update_data = $_POST['listing_link'];
mysql_query("UPDATE users SET `$update_field`='$update_data'
WHERE email='$emailstring'");
}
有趣的技巧:)您的代码似乎不正确。你有5个链接。如果有人删除并将链接3发送为空,该怎么办。您是将该用户的数据库链接3值更新为空还是忽略该值?你的问题的答案取决于此。货物崇拜编程?将post值复制到变量,然后用post值的转义版本覆盖完全相同的值?是的,这是有缺陷的,我意识到这一点,这就是我寻求帮助的原因。我想能够测试一个字段是否为空,以确定是否用下一个链接填充另一个字段……有没有办法测试数据库中的“字段”是否为空,而不是变量本身?嘿,再见,这个解决方案不会填充除第一个(第一个链接1)之外的任何其他字段。当我给表单新的输入时,它将只替换第一个字段。其他字段都不会更改。
$test = "groovy.";
$varname = "test";
echo $$varname; // eqivalent to "echo $test"