当用户填写带有可选输入的表单时,这将启动。这些值由AJAX传递到另一个PHP页面以插入到数据库中。如果特定输入为空,我不想更新存储在数据库中的数据。除了编写大量if
语句之外,有没有办法检查输入值是否为空?如果它是空的,我该如何编写语句,以便MySQL不会更新数据库中的相应字段?
if(isset($_POST['f_name']) && isset($_POST['m_name']) && isset($_POST['l_name']) && isset($_POST['alt_name'])){
$fname = $_POST['f_name'];
$mname = $_POST['m_name'];
$lname = $_POST['l_name'];
$altname = $_POST['alt_name'];
如果某些$ _POST条目为空,则不应将它们放入数据库。我这样说是因为如果数据库中已存在一个值,我不想用空值覆盖该值。
答案 0 :(得分:2)
在这种情况下,您也不允许用户只输入blank space
/ &bnsp;
<?php
$empty = FALSE;
foreach ($_POST as $key)
{
if (!isset($key) || strlen(trim($key)) != 0)
{
$empty = TRUE;
}
}
if (!$empty)
{
$fname = $_POST['f_name'];
$mname = $_POST['m_name'];
$lname = $_POST['l_name'];
$altname = $_POST['alt_name'];
}
?>
答案 1 :(得分:1)
嗯......您可以使用foreach来检查所有值。
$empty = FALSE;
foreach ($_POST as $key) {
if (!isset($key)) {
$empty = TRUE;
break;
}
}
if (!$empty) {
$fname = $_POST['f_name'];
$mname = $_POST['m_name'];
$lname = $_POST['l_name'];
$altname = $_POST['alt_name'];
}
答案 2 :(得分:-1)
我通常使用简写if语句(也称为三元运算符)来执行此类操作。您可以编写类似这样的SQL查询:
$query = "UPDATE my_table SET f_name = ".(!empty($fname) ? "'$fname'" : 'f_name').", m_name = ".(!empty($mname) ? "'$mname'" : 'm_name').", ";
//etc.. etc..