2017-10-10 12 views
0
CREATE PROCEDURE ts(IN col1 varchar(100),IN val int, OUT res int) 
BEGIN 

SET @s=CONCAT("SELECT ISNULL(NULLIF(",col1,",'')) INTO @res FROM demo WHERE d=",val); 
PREPARE stmt1 FROM @s; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 

SELECT @res INTO res; 

END 

i rencontrer l'erreur suivanteJe veux obtenir le nombre nul de nom de la colonne dyanmic

1064 - Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel qui correspond à votre version du serveur MariaDB pour la bonne syntaxe à utiliser près de '' à la ligne 4

je veux utiliser cette procédure stockée en PHP ??? aidez s'il vous plaît !!

Répondre

0

ISNULL ne SQL92, essayez:

sum(case when field is null then 1 else 0 end) 

pour une meilleure portabilité

+0

Merci, je suis en train d'exécuter cette procédure stockée en utilisant PHP mysqli mais cela ne fonctionne pas! –

+0

votre requête n'est pas assez dynamique pour justifier une procédure stockée ou la génération de requête dynamique. Pensez à générer la requête en PHP et à abandonner la procédure tous ensemble. –