我无法弄清楚如何将form的值设置为NULL。执行以下操作只会在数据库中存储null的第一个字母,因此private将成为" N"在我使用以下方法提交表单时在数据库中。我绝对需要将db中的值更改为NULL而不是''空。
<input type="hidden" name="private" value=NULL>
数据库插入工作正常。这是:
$priv = $_POST['private'];
$sql = "UPDATE wp_users SET privacy = :private WHERE ID = :ID";
$stmt3 = $dbh->prepare($sql);
$stmt3->bindParam(':ID', $user_ID, PDO::PARAM_INT);
$stmt3->bindParam(':private', $priv, PDO::PARAM_STR);
$stmt3->execute();
答案 0 :(得分:4)
您需要检查私有字段的值,然后您需要将该字段更新为null。
例如:
if($_POST["private"] == "NULL"){
query("UPDATE `table` SET `private`= NULL")
}
请勿忘记输入字段中的引号
<input type="hidden" name="private" value="NULL">
请注意,值null(在查询中)不是字符串。
使用代码更新问题后进行编辑:
你应该让$ priv null。
$priv = $_POST["private"];
if($priv == "NULL"){
$priv = null;
}
一个班轮:
$priv = ($_POST["private"] == "NULL") ? null : $_POST["private"];
答案 1 :(得分:0)
不足以将值设为空吗? value=""
<input type="hidden" name="private" value="">
然后
$priv = $_POST["private"];
// $priv = NULL