我有一个PHP代码,我正在努力弄清楚。基本上我希望代码检查变量是否等于某个值,如果是,那么我希望DB更新为NULL,如果它不等于该值,那么它会将变量写入数据库。
PHP
$noteid = $_POST['id'];
$title = $_POST['title'];
$content = $_POST['content'];
if ($title == 'Type your title'){
$title = null;
} else {
$title = '$title';
}
if ($content == 'Type your note'){
$content = null;
} else {
$content = '$content';
}
$result = mysql_query("UPDATE notes SET title=$title, note=$content WHERE id='$noteid' AND uid = '$_SESSION[id]'");
答案 0 :(得分:3)
我看到两个问题:
首先是解决你所问的问题:
如果它不等于该值,那么它会将变量写入DB。
删除所有其他块,因为它们并非真正需要。您已从$title
全局设置了$_POST
。其次,您将$title
包装在单引号内,将要做的是将内容置于单引号文字中,因此$title
不会进行插值。对于字符串插值,您希望使用双引号,如果必须,则使用"$title"
。
删除else块后您的代码已更新:
$noteid = $_POST['id'];
$title = $_POST['title'];
$content = $_POST['content'];
if ($title == 'Type your title'){
$title = null;
}
if ($content == 'Type your note'){
$content = null;
}
第二个问题是您使用的是已弃用的mysql_
函数。您应该考虑切换为使用mysqli
或PDO
。
答案 1 :(得分:0)
更改此
if ($title == 'Type your title'){
$title = null;
} else {
$title = '$title';
}
if ($content == 'Type your note'){
$content = null;
} else {
$content = '$content';
}
到
if ($title == 'Type your title'){
$title = null;
} else {
$title = $title;
}
if ($content == 'Type your note'){
$content = null;
} else {
$content = $content;
}`
或 Will Harrison 表示删除else代码并将其设为
if ($title == 'Type your title'){
$title = null;
}
if ($content == 'Type your note'){
$content = null;
}
`