当用户填写带有可选输入的表单时开始。这些值通过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条目是空的,那么它们不应该被放入数据库中。我之所以这么说,是因为如果数据库中已经存在一个值,我不想用空值覆盖该值
在这种情况下,您也不允许人们只输入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'];
}
?>
嗯…您可以使用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'];
}
我通常使用简写的if语句(也称为三元操作符)来做类似的事情。您可以这样编写SQL查询:
$query = "UPDATE my_table SET f_name = ".(!empty($fname) ? "'$fname'" : 'f_name').", m_name = ".(!empty($mname) ? "'$mname'" : 'm_name').", ";
//etc.. etc..