2011-09-13 4 views
0

Je suis très nouveau à la procédure stockée. J'essaye d'écrire une procédure stockée très basique. Et voici:procédure stockée MySQL toujours obtenir des valeurs vides

DELIMITER // 

    CREATE PROCEDURE `getname` (IN a_id INT, OUT a_name VARCHAR(50)) 

    BEGIN 
     SELECT name INTO a_name FROM tblname WHERE id = a_id; 
    END // 

DELIMITER ; 

J'ai une base de données très simple avec une seule table, un seul des lignes en elle avec id 1 et une valeur de chaîne comme nom. Chaque fois que j'appelle la procédure comme:

CALL getname(1, @a_name); 
SELECT @a_name; 

retourne toujours les valeurs NULL :(

Je suis assis pendant 4 dernières heures avec ce problème simple mais toujours pas de chance l'espoir d'obtenir une solution de vous les gars. .

BTW, je me sers XAMPP 1.7.1 pour windows 32 bits avec la version MySQL est 5.1.33

+0

Bonjour, J'ai testé votre code en 5.1.28 et il fonctionne correctement comme prévu. Êtes-vous sûr d'avoir un enregistrement avec id = 1 et un nom qui n'est pas nul dans votre tableau? – mishau

Répondre

0

Essayez dans cette session -.

CALL getname(1, @a_name); 
SELECT @a_name; 

SELECT * FROM tblname WHERE id = 1; -- Is there any result? 

Si le résultat est pas vide, essayez d'exécuter cette instruction SELECT de la procédure -

... 
BEGIN 
    SELECT * FROM tblname WHERE id = 1; 
END// 
... 

et l'appeler à nouveau.