2011-08-19 36 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消息。 –