PHP MySQL将值设为null

时间:2013-12-03 04:23:51

标签: php mysql

我有一个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]'");

2 个答案:

答案 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_函数。您应该考虑切换为使用mysqliPDO

答案 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;
    } 
    `