2010-04-16 8 views
3

Ok, laissez-moi essayer à nouveau.procédure stockée Mysql où la clause

query ("CALL getemployee ('$ eml')"); $ resultat = $ sql-> fetch_array(); ? > Ceci est ma procédure stockée:

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

L'erreur que je reçois de navigateur: "Erreur fatale: Appel à une fonction membre fetch_array() sur un non-objet ...".

J'utiliser la version phpMyAdmin 3.2.4 et la version client MySQL: 5.1.41

+1

Afficher votre code PHP rendrait plus facile d'aider. – acrosman

+0

Je ne vois pas où 'eml' est déclaré ou défini dans votre procédure. – Thomas

Répondre

2

Votre déclaration CREATE PROCEDURE semble invalide.

Vous devez donner un nom à votre procédure et au paramètre que vous transmettez. Par conséquent, vous pouvez essayer quelque chose comme l'exemple suivant:

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

La variable eml vous utilisez n'est pas défini. Devrait-il pas comme suit:

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