Everytime appeler cette procédure stockée je reçois cette erreur:sélectionnez Utiliser dans la variable locale et déclaration préparée dans une base MySQL
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1
Ce qui semble être le problème?
Voici le code:
DELIMITER $$
DROP PROCEDURE IF EXISTS `singledb`.`TOUR_TRANSFER`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `TOUR_TRANSFER`()
BEGIN
BEGIN -- for rubric table
DECLARE tblRubric_rubric_id INT;
SET @qry = concat('SELECT count(*) into ',tblRubric_rubric_id,' FROM zerodb2.tour_template');
PREPARE statement FROM @qry;
EXECUTE statement;
SELECT tblRubric_rubric_id;
END;
END$$
DELIMITER ;
Qu'est-ce exactement ce que vous essayez de faire, je pense que je peux aider. Obtenir le nombre d'une requête et juste retourner cela? – Ray
@Ray Je veux juste assigner une valeur à une variable locale en utilisant select into dans une instruction préparée. Mais j'ai découvert qu'il ne fonctionnera pas avec les variables locales. Voir http://bugs.mysql.com/bug.php?id=15263 – kaz
Cela fonctionne avec les variables locales. Je comprends ce que vous essayez de faire, mais il n'est pas nécessaire de le sélectionner dans une variable locale dans une procédure stockée sauf si vous envisagez de faire quelque chose avec cette variable locale dans la procédure stockée. Où appelez-vous cette procédure stockée de PHP ou quelque chose? Si vous souhaitez accéder à ce "count (*)" tout ce que vous avez à faire est d'appeler l'instruction select. Vous n'êtes pas obligé de le sélectionner dans une variable. – Ray