我有一个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 的查询?
多谢
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注入。
当您将NULL
发送到存储过程时,您正在引用它。请尝试以下操作:
$strSqlSelect = "EXECUTE mybd.dbo.myprocedure
@var1=" . ($variableFromSelector1 == '-' ? 'NULL' : "'{variableFromSelector1}'" . ",
@var2=" . ($variableFromSelector2 == '-' ? 'NULL' : "'{variableFromSelector2}'" . ";