2013-05-16 96 views
3

我有一些不需要的字段。在数据库中,这些字段被设置为Null:YES。 如果某个字段为空,则下面的代码将引发错误。请你帮助避免这种情况的最佳等待时间,我唯一想到的解决方案是将变量设置为“'如果为空()”。Mysqli插入语句 - 空值

$query = "INSERT INTO gifts 
      (dateRequest, firstName, lastName, note, lastUpdated) 
      VALUES 
      (?, ?, ?, ?, NOW())"; 
if($stmt = $dbc->prepare($query)) { 
    $dateRequest = $_POST['dateRequest']; 
    $firstName = $_POST['firstName']; 
    $lastName = $_POST['lastName']; 
    $note = $_POST['note']; 
    $stmt->bind_param('ssss', $dateRequest, $firstName, $lastName, $note); 
    if($stmt->execute()) { 
    $stmt->close(); 
    header('Location: index.php'); 
    } 
    else { 
    echo $stmt->error; 
    } 
} 

回答

2

我宁愿建议检查$_POST paramenters definied他们之前,所以如果一个变量是不是空集values否则设置为NULL

if(!empty($_POST['dateRequest'])) { $dateRequest = $_POST['dateRequest']; } else { $dateRequest = NULL; } 
if(!empty($_POST['firstName'])) { $firstName = $_POST['firstName']; } else { $firstName = NULL; } 
if(!empty($_POST['lastName'])) { $lastName = $_POST['lastName']; } else { $lastName = NULL; } 
if(!empty($_POST['lastName'])) { $note = $_POST['note']; } else { $note = NULL; } 

这会防止你通过在查询空参数。