2012-04-26 4 views
0

私はいくつかのセレクタを含むフォームを持つhtmlページを持っています。html形式からのNULLを使用したTSQLクエリの入力

フォームは、jquery ajaxを使用してデータをPHPページに送信するjs関数を介してGETによって処理されます。 phpは、情報を選択するためのTSQLクエリを作成します。

セレクタでオプションを選択しない場合は、クエリにNULLが必要です。 私が試したのJSとphpのページで両方:

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

( - セレクタで選択された何を意味する)

しかし、これは同じではない「NULL」でクエリを埋め

function showData($variableFromSelector1,$variableFromSelector2) 
    { 

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

がどのように私は何のオプションは、セレクタで選択されていない場合はNULLでクエリを取得することができます:ここではNULL

は、クエリがどのようになるのか?

どうもありがとう

+0

引用符を使用しないでください。 $ var = NULL; – zimdanen

+0

どのようにクエリを作成していますか? – wroniasty

+0

$ var = NULLを実行すると構文エラーが発生する – user523129

答えて

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インジェクションから保護するためにすべての入力をサニタイズすることを忘れないでください。

0

あなたのストアドプロシージャにそれを送信するときは、NULLを引用しています。次のことを試してみてください。

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

あなたの提案を試していますが、構文エラーがあります。私はこれまでのところ欠けていることを検出しましたが、残りはまだ作業中です – user523129

+0

更新を参照してください。私はいくつかの引用符を逃したように見えます。これは最終的には他の答えと同じですが、三項演算子ではコードが少なくて済みます。 –

関連する問題