2011-08-19 50 views
-1

我的問題是:一個存儲過程,接收給定航班和給定日期作爲輸入,並顯示一個客戶呼叫列表,其中包括姓名,地址和電話號碼作爲輸出。 查詢很簡單,我可以從單個表中獲取所有數據,但是,我不知道如何在運行過程時接受輸入,然後將其與內部值進行比較。 查詢是:帶參數的存儲程序

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

高度會感激你幫我在同....只需要在查詢轉換成一個存儲過程中的問題提到這需要2個輸入,日期和flight_no以上。

謝謝。

+1

http://www.mysqltutorial.org/stored-procedures-parameters.aspx。它是一個很好的教程。 – Nitish

+0

你想傳入的兩個輸入是什麼?我C SF.DATE(輸入),另一個是什麼? –

+0

請說明您正在使用哪種RDBMS。 SQL在很大程度上都是標準的,但是存儲過程是針對每個產品定製的。你的標籤說的是[mysql],但是包含你對伯納德響應的評論的錯誤消息來自Oracle Pl/SQL。 – APC

回答

0

要創建SP(不知道確切的數據類型,所以我只是猜測):

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 
// 

你的PHP代碼將財產以後這樣的(TODO替換由查詢參數出於安全原因,$輸入) : $ result = $ db-> query(「call NameOfProcedure($ input)」);

+1

PLS-00103:遇到符號「(」時期待 以下之一: :=。),@%默認字符 這是我得到的錯誤。 – user902243

+2

@ user902243這很混亂。你在使用MySql嗎?該錯誤消息看起來像一個Oracle消息。 –