使用变量将SQL更新为NULL

时间:2017-02-05 16:06:47

标签: php sql null

我一直遇到与表更新相关的引号问题。我正在从表单发送一个包含多个值的帖子,然后用它们更新表格。为了使代码生效,我需要用反斜杠($ColumnaString)包装密钥,并用单引号($ValueString)包装值。这很好用。我的问题是偶尔我想更新为NULL(当$value==""时)。但我目前的代码不这样做。有人能发现问题吗?

$id_tag=trim($_POST['id']);
foreach($_POST as $key=>$value){
    if ($key!="UpdatePeople"){
        $ColumnaString="`".$key."`";
        $ValueString="'".iconv('UTF-8', 'ISO-8859-1//TRANSLIT', utf8_encode($value))."'";
        if ($key=="In_Date" and $value=="") {$ValueString==NULL;} //Hereis my problem I think
        $link->query("UPDATE MyTable SET ".$ColumnaString."=".$ValueString." WHERE `id`=".$id_tag."");
    }
}

2 个答案:

答案 0 :(得分:1)

你可以检查$ id_tag并创建一个正确的sql代码部分

$str = ($id_tag ='' ) ? ' is null ' : ' = '.$id_tag;

$link->query("UPDATE MyTable SET ".$ColumnaString." = ".$ValueString." WHERE `id`".str."");

和$ vale

if ($key=="In_Date" and $value=="") { $ValueString = 'NULL' ;} //Hereis my problem I think

答案 1 :(得分:0)

检查数据库是否将列定义为NOT NULL