使用来自html表单的NULL填充SQL查询

时间:2012-04-26 15:46:12

标签: php sql forms tsql null

我有一个html页面,其中包含一些包含两个选择器的表单。

表单由GET通过js函数处理,该函数使用jquery ajax将数据发送到php页面。 php构建TSQL查询以选择信息。

如果你没有在选择器中选择任何选项,我的查询中需要一个NULL。 在我试过的js和php页面中都有:

if($variableFromSelector1 ==’-’){ $variableFromSelector1 =’NULL’;}
if($variableFromSelector2 ==’-’){ $variableFromSelector2 =’NULL’;}

( - 表示选择器中未选择任何内容)

但这会使用'NULL'填充查询,这与NULL

不同

以下是查询的结果:

   function showData($variableFromSelector1,$variableFromSelector2)
    {  

            $strSqlSelect = "EXECUTE mybd.dbo.myprocedure 
            @var1='".$variableFromSelector1."',
            @var2='".$variableFromSelector2."'";
    }

如果选择器中未选择任何选项,如何使用NULL获取查询?

非常感谢

2 个答案:

答案 0 :(得分:0)

当您将NULL发送到存储过程时,它会引用它。请尝试以下方法:

$strSqlSelect = "EXECUTE mybd.dbo.myprocedure 
@var1=" . ($variableFromSelector1 == '-' ? 'NULL' : "'{variableFromSelector1}'" . ",
@var2=" . ($variableFromSelector2 == '-' ? 'NULL' : "'{variableFromSelector2}'" . ";

答案 1 :(得分:0)

if($variableFromSelector1 ==’-’){ $variableFromSelector1 = NULL;}
if($variableFromSelector2 ==’-’){ $variableFromSelector2 = NULL;}

function showData($variableFromSelector1,$variableFromSelector2)
{  
  $var1 = is_null($variableFromSelector1) ? 'NULL' : "'{$variableFromSelector1}'";
  $var2 = is_null($variableFromSelector2) ? 'NULL' : "'{$variableFromSelector2}'";

  $strSqlSelect = "EXECUTE mybd.dbo.myprocedure 
  @var1=".$var1.",
  @var2=".$var2;
}

还要记住清理所有输入以防止SQL注入。