Запрос на обновление MS SQL для столбца int с пустым значением - PullRequest
0 голосов
/ 23 января 2012

В моей таблице есть два столбца - col1 (int, null) и col2 (int, null), которые я хочу иметь возможность обновлять пустыми значениями или оператором null.

Мой код выглядит так:

            $newkeylimit = $allkeylimits[$row['Group_ID']];
            if($newkeylimit == ''){ $newkeylimit = NULL ; }

            $newproflimit = $allproflimits[$row['Group_ID']];                               
            if($newproflimit == ''){ $newproflimit = NULL ; }

            $sql = "UPDATE ".$mssql_table_prefix."Groups SET Group_Name = '".$newgroupname."', col1 = '".$newkeylimit."', col2 = '".$newproflimit."' WHERE Group_ID = '".$row['Group_ID']."'";
            $result = mssql_query($sql)
                or die( "<strong>ERROR: Group update query failed</strong>" );

После выполнения кода я получаю 0 в каждом столбце, где предполагается пустое значение или NULL. Значения по умолчанию для col1 и col2 установлены в NULL.

Есть идеи, что я делаю не так? Спасибо

Ответы [ 2 ]

1 голос
/ 23 января 2012

Вы не можете установить значение «NULL».Вместо этого вы устанавливаете NULL.Попробуйте это.

        $newkeylimit = $allkeylimits[$row['Group_ID']];
        if($newkeylimit == "''"){ $newkeylimit = "NULL" ; }

        $newproflimit = $allproflimits[$row['Group_ID']];                               
        if($newproflimit == '""'){ $newproflimit = "NULL" ; }

        $sql = "UPDATE ".$mssql_table_prefix."Groups SET Group_Name = '".$newgroupname."',                col1 = ".$newkeylimit.", col2 = ".$newproflimit." WHERE Group_ID = '".$row['Group_ID']."'";
0 голосов
/ 23 января 2012

Вы передаете строку вместо NULL на сервер.Избавьтесь от апострофов (') для col1 и col2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...