我不知道如何将 form 的值设置为 NULL。执行以下操作只会将空的第一个字母存储在数据库中,因此当我使用下面的方法提交表单时,私有将在数据库中变为“N”。我绝对需要将数据库中的值更改为 NULL 而不是“空”。
<input type="hidden" name="private" value=NULL>
Run Code Online (Sandbox Code Playgroud)
数据库插入工作正常。这里是:
$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();
Run Code Online (Sandbox Code Playgroud)
您需要检查私有字段的值,然后需要将该字段更新为空。
例如:
if($_POST["private"] == "NULL"){
query("UPDATE `table` SET `private`= NULL")
}
Run Code Online (Sandbox Code Playgroud)
不要忘记输入字段中的引号
<input type="hidden" name="private" value="NULL">
Run Code Online (Sandbox Code Playgroud)
请注意,值 null(在查询中)不是字符串。
使用代码更新问题后进行编辑:
您应该将 $priv 设为空。
$priv = $_POST["private"];
if($priv == "NULL"){
$priv = null;
}
Run Code Online (Sandbox Code Playgroud)
一班轮:
$priv = ($_POST["private"] == "NULL") ? null : $_POST["private"];
Run Code Online (Sandbox Code Playgroud)