Outre les privilèges, la cause la plus probable de vos problèmes est que mysql_query ($query) ne peut en réalité exécuter qu'une seule commande par appel !
Il vous suffit donc de diviser la commande en plusieurs appels mysql_query($query).
Ce que je veux dire, c'est ceci :
$query = "DROP FUNCTION IF EXISTS fnElfProef (accountNr INT)";
mysql_query($query);
$query = "CREATE FUNCTION fnElfProef (accountNr INT)
RETURNS BOOLEAN
BEGIN
DECLARE i, totaal INT DEFAULT 0;
WHILE i < 9 DO
SET i = i+1;
SET totaal = totaal+(i*(accountNr%10));
SET accountNr = FLOOR(accountNr/10);
END WHILE;
RETURN (totaal%11) = 0;
END";
mysql_query($query);
$query = "SELECT * FROM mytable";
mysql_query($query);
La question suivante est : le compte que vous utilisez pour accéder à la base de données MySQL dispose-t-il des autorisations appropriées pour le processus de création proprement dit ?
Outre les privilèges, la cause la plus probable de vos problèmes est que mysql_query ($query) ne peut en réalité exécuter qu'une seule commande par appel !
Il vous suffit donc de diviser la commande en plusieurs appels mysql_query($query).
Ce que je veux dire, c'est ceci :
Le
Manuel MySQL donne un aperçu clair de comment créer des procédures stockées (13.1.15.
CREATE PROCEDURE
和CREATE FUNCTION
Syntaxe ).La question suivante est : le compte que vous utilisez pour accéder à la base de données MySQL dispose-t-il des autorisations appropriées pour le processus de création proprement dit ?
Des détails sur ce problème peuvent être trouvés ici : 19.2.2. Routines stockées et autorisations MySQL