2010-04-16 96 views
3

好吧,讓我再試一次。Mysql存儲過程,其中子句

query(「CALL getemployee('$ eml')」); $ result = $ sql-> fetch_array(); ? > 這是我的存儲過程:

Delimiter // 
Create procedure getemployee(in eml varchar(50)) 
Begin 
    Select * from employees where email = eml; 
End// 
Delimiter ; 

的錯誤,我從瀏覽器中得到: 「致命錯誤:調用一個成員函數fetch_array()一個非對象...」。

我用phpmyadmin版本3.2.4和MySQL客戶端版本5.1.41

+1

顯示你的PHP代碼將使其更容易幫助。 – acrosman 2010-04-16 20:37:35

+0

我沒有看到'eml'在你的程序中被聲明或設置的位置。 – Thomas 2010-04-16 20:38:32

回答

2

CREATE PROCEDURE聲明似乎無效。

您需要爲您的過程和參數傳遞一個名稱。因此,您可能需要嘗試以下示例:

DELIMITER // 
CREATE PROCEDURE procName (IN eml varchar(50)) 
BEGIN 
    SELECT * FROM employees WHERE email = eml; 
END//  
DELIMITER ; 
1

eml您使用的變量未定義。它不應該是如下:

Create procedure getemployee (in eml varchar(50)) 
0
CREATE PROCEDURE get_customers(IN inCustomerIdList VARCHAR(100)) 
BEGIN 

    SELECT first_name, last_name, email FROM tbl_customers 
    WHERE customer_id IN (inCustomerIdList); 

END$$