我不知道如何将表单的值设置为NULL。执行以下操作将只在数据库中存储null的第一个字母,因此当我使用以下方法提交表单时,private将在数据库中变为"N"。我肯定需要将数据库中的值更改为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();
您需要检查私有字段的值,然后需要将字段更新为null。
例如:
if($_POST["private"] == "NULL"){
query("UPDATE `table` SET `private`= NULL")
}
不要忘记输入字段中的引号
<input type="hidden" name="private" value="NULL">
请注意,值null(在查询中)不是字符串。
问题更新后编辑代码:
您应该将$priva设为null。
$priv = $_POST["private"];
if($priv == "NULL"){
$priv = null;
}
一个衬垫:
$priv = ($_POST["private"] == "NULL") ? null : $_POST["private"];
仅仅让值为空还不够吗?value=""
<input type="hidden" name="private" value="">
然后
$priv = $_POST["private"];
// $priv = NULL