IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

création fonction phpMyAdmin


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut création fonction phpMyAdmin
    j'essaie en vain d'ajouter cette fonction via phpMyAdmin..
    il me met ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MySQL a répondu: 
     
    #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 'INT' at line 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    -- 
    -- DELIMITER ;
    -- 
    -- Fonctions
    -- 
     
    CREATE DEFINER=`root`@`%` FUNCTION `validation_CircuitPluginSpe`(
        input TEXT,
        delimiter VARCHAR(10),
        valeur varchar(255)
    ) RETURNS int(11)
        SQL SECURITY INVOKER
    BEGIN
         DECLARE retour INT;
         call split_string(input,delimiter);
         SELECT COUNT(*) INTO retour FROM SplitValues where valeur in (select * from SplitValues);
         return retour;
    END
    n'étant pas un roi en SQL, si quelqu'un pouvait m'aider.

    Merci

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Crois moi. Phpmyadmin c'est la misère avec les fonctions et procédure stocké. Passe par php en faisant appelle a un simple mysqli_query($mafonction)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    synthaxiquement, elle est correcte alors?

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    oui, c'est un probleme de délimiter

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    $link = mysql_connect("xxx", "xxx", "xxx") or die("Impossible de se connecter : " . mysql_error());
    					echo 'Connecté correctement';
    					mysql_select_db("cg90", $link) or die('Could not select database.');
    				 mysql_query("-- 
    					-- DELIMITER ;
    					-- 
    					-- Fonctions
    					-- 
     
    					CREATE DEFINER=`root`@`%` FUNCTION `validation_CircuitPluginSpe`(
    					input TEXT,
    					delimiter VARCHAR(10),
    					valeur varchar(255)
    					) RETURNS int(11)
    					SQL SECURITY INVOKER
    					BEGIN
    					DECLARE retour INT;
    					call split_string(input,delimiter);
    					SELECT COUNT(*) INTO retour FROM SplitValues WHERE valeur IN (SELECT * FROM SplitValues);
    					RETURN retour;
    					END")or die('Requête invalide : ' . mysql_error());
     
    					mysql_close($link);
    voici mon code et l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Connecté correctementRequête invalide : This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
    j'utilise:
    phpMyAdmin - 2.11.0
    Version du client MySQL: 5.0.27


    merci

  6. #6
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Enlève cette zone
    DEFINER=`root`@`%`

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    cela ne change rien..., même message d'erreur

    j'ai essayé directement en ligne de commande par ssh et pareil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     mysql -h host -u root -p bdd < fonction.sql 
    Enter password: 
    ERROR 1064 (42000) at line 6: 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 'INT' at line 8
    que faire?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    pas de personnes pour me venir en aide?

  9. #9
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE FUNCTION `validation_CircuitPluginSpe`(
    					input TEXT,
    					delimiter VARCHAR(10),
    					valeur varchar(255)
    					) RETURNS int(11)
    					SQL SECURITY INVOKER
    					BEGIN
    					DECLARE retour INT;
    					call split_string(input,delimiter);
    					SELECT COUNT(*) INTO retour FROM SplitValues WHERE valeur IN (SELECT * FROM SplitValues);
    					RETURN retour;
    					END
    J'ai testé ainsi et ça fonctionne

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    je t'avouerais que là, je suis perdu. J'ai repris exactement ta synthaxe que j'execute via une page php..mais rien ni fait. J'ai toujours cette erreur qui ne me parle pas trop.
    Le pire c'est que c'est besoin de cette fonction.
    Serait-ce du a la version de MySQL? ou phpMyAdmin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $link = mysql_connect("xxx", "xxx", "xxx") or die("Impossible de se connecter : " . mysql_error());
    					mysql_select_db("xxx", $link) or die('Could not select database.');
    					mysql_query("CREATE FUNCTION `validation_CircuitPluginSpe`(
    					input TEXT,
    					delimiter VARCHAR(10),
    					valeur varchar(255)
    					) RETURNS int(11)
    					SQL SECURITY INVOKER
    					BEGIN
    					DECLARE retour INT;
    					call split_string(input,delimiter);
    					SELECT COUNT(*) INTO retour FROM SplitValues WHERE valeur IN (SELECT * FROM SplitValues);
    					RETURN retour;
    								END") or die('Requête invalide : ' . mysql_error());
    					mysql_close($link);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Requête invalide : This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

    en tout cas, merci de l'interet que tu me portes.

  11. #11
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    J'ai l'impression que tu as des problèmes de droit.
    Ajoute cette partie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        NOT DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY DEFINER
    A la place du simple

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Par défaut
    ça ne change rien....

  13. #13
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    C'est bizarre, j'ai l'impression que tu as un problème de droit

Discussions similaires

  1. Création Fonction INVERSE()
    Par alain1033 dans le forum Excel
    Réponses: 2
    Dernier message: 16/01/2010, 12h40
  2. Création fonction avec argument dans une classe
    Par Général03 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 30/06/2009, 09h57
  3. création fonction "Filtre"
    Par gwems dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/03/2009, 08h19
  4. Réponses: 6
    Dernier message: 14/03/2008, 19h04
  5. [JS] Aide création Fonction
    Par Pahcixam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/02/2007, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo