2011-08-19 14 views
-1

私の質問は:指定されたフライトと指定された日付を入力として受け取り、出力として名前、住所、電話番号を含む顧客のコールリストを表示するストアドプロシージャです。 クエリは単純ですが、1つのテーブルからすべてのデータを取得できますが、プロシージャの実行中に入力を受け取り、その値を内部の値と比較する方法はわかりません。 クエリは次のとおりです。パラメータ付きのストアドプロシージャ

select NAME, ADDRESS, PHONE 
    FROM SCH_FLIGHTS SF, PASSENGERS P 
    WHERE SF.DATE(input) = P.DATE 

は非常にあなたが同じで私を助けてお願い申し上げ....ちょうど質問で述べたように2つの入力、日付とflight_noを取るストアドプロシージャにそのクエリを変換する必要があります上記。

ありがとうございました。あなたのPHPコードは(TODOは、セキュリティ上の理由から、クエリパラメータで$入力を置き換える)このように気にいらないように見えるでしょう

delimiter // 
CREATE PROCEDURE NameOfProcedure(input VARCHAR(32)) 
BEGIN 
    select NAME, ADDRESS, PHONE 
    FROM SCH_FLIGHTS SF, PASSENGERS P 
    WHERE SF.DATE(input) = P.DATE 
END 
// 

:SPを(私は推測していますので、正確なデータ型を知っていない)を作成するには

+1

http://www.mysqltutorial.org/stored-procedures-parameters.aspx。その良いチュートリアルです。 – Nitish

+0

渡したい2つの入力は何ですか?私はSF.DATE(入力)、他は何ですか? –

+0

使用しているRDBMSのフレーバーを明確にしてください。 SQLはすべてのflovoursの(ほぼ)標準ですが、ストアドプロシージャは各製品ごとに個別に用意されています。あなたのタグには[mysql]と書かれていますが、バーナードの返答に対するあなたのコメントを含むエラーメッセージは、Oracle Pl/SQLのものです。 – APC

答えて

0

: $ result = $ db-> query( "call NameOfProcedure($ input)");

+1

PLS-00103: のいずれかが続くと、シンボル "(")が発生しました: :=。 – user902243

+2

@ user902243これは混乱します。 MySqlを使用していますか?エラー・メッセージは、Oracleメッセージのように見えます。 –

関連する問題