我正在使用下面的脚本将动态创建的表单的值存储到MySQL数据库中。用户可以在保存后返回到表单以更新信息。如何使用PHP将未答复的单选按钮问题作为NULL值发布到MySQL数据库中?
该应用程序使用单选按钮表单元素,它们只有在被回答后才通过POST发送。 MySQL数据库中的默认值设置为NULL。所以如果一个问题没有得到解答,它仍然是NULL,这很好。
但是,我也使用jQuery来允许某些表单元素被重置(即可以清除单选按钮)。
如果用户回答一个单选按钮问题,保存表单,稍后返回并清除单选按钮问题,则该数据库中的值永远不会设置为NULL。
有关我如何实现此目标的任何想法?
<?php
require_once('../../includes/connect.php');
$org_id = $_SESSION['ORG_ID'];
$user_id = $_SESSION['USER_ID'];
$dbh = get_org_dbh($org_id);
$sql = "UPDATE health_forms SET ";
$values = array();
foreach ($_POST as $field => $value){
$sql .= "$field=?, ";
array_push($values, $value);
}
$sql = rtrim($sql,", ");
$sql .= " WHERE id=?;\n";
array_push($values, $user_id);
try {
$sth = $dbh->prepare($sql);
$sth->execute($values);
}
header("location: ../index.php?i=completed");
?>
嗨,亚当,我的数据库中的所有列的默认值已被设置为NULL。对于那些从来没有回答过的问题,这些问题依然为空。 – Michael 2012-02-05 17:56:58