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

Réseau C Discussion :

[MySQL] Lancer des requêtes


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut [MySQL] Lancer des requêtes
    Bonjour à tous..
    J'essaie de lancer une requête SQL sur une base mySQL de chez Free mais en vain. J'implore votre aide !

    Code C : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <unistd.h>
    #include <winsock.h>
    #include <mysql/mysql.h>
     
     
    void requete(MYSQL *conn)
    {
    	MYSQL_RES *result;
    	MYSQL_ROW elementsColonne;
    	unsigned int nbColonnes;
    	int i;
     
    	if (mysql_query(conn,"SELECT * FROM compteur"))
    	{
    		printf("Erreur dans la requête\n");
    		return;
    	}
    	else // requête bonne, traitons les données qu'elle renvoit
    	{
    		result = mysql_store_result(conn);
    		if (result != NULL)  // MySQL peut extraire des résultats
    		{
    			nbColonnes = mysql_num_fields(result);
     
    			// récupère les enregistrements un par un
    			while ((elementsColonne = mysql_fetch_row(result)))
    			{
    				for (i = 0; i < nbColonnes; i++)
    					printf("%s\t", (elementsColonne[i] != NULL) ? elementsColonne[i] : "NULL");
    				printf("\n");
    			}
    			// on libère la mémoire prise pour les résultats
    			mysql_free_result(result);
    		}
    		else
    			printf("Aucun résultat à la requête !\n");
    	}
    }
     
     
    int main(int argc, char*argv[])
    {
    	MYSQL *conn;
     
    	// initialisation
    	if((conn = mysql_init(NULL)) == NULL)
    	{
    		printf("Erreur d'initialisation\n");
    		return 0;
    	}
     
    	// connexion au serveur (ici, en local)
    	if(mysql_real_connect(conn,"sql.free.fr","pseudo","pass","bdd",0,NULL,0)==NULL)
    	{
    		printf("Erreur de connexion\n");
    		return 0;
    	}
     
    	// on lance la requête
    	requete(conn);
     
    	// on ferme la connexion au serveur MySQL
    	mysql_close(conn);
    }

    Erreurs retournées :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    main.o(.text+0x15):main.cpp: undefined reference to `mysql_query@8'
    main.o(.text+0x38):main.cpp: undefined reference to `mysql_store_result@4'
    main.o(.text+0x53):main.cpp: undefined reference to `mysql_num_fields@4'
    main.o(.text+0x64):main.cpp: undefined reference to `mysql_fetch_row@4'
    main.o(.text+0xdf):main.cpp: undefined reference to `mysql_free_result@4'
    main.o(.text+0x128):main.cpp: undefined reference to `mysql_init@4'
    main.o(.text+0x18c):main.cpp: undefined reference to `mysql_real_connect@32'
    main.o(.text+0x1be):main.cpp: undefined reference to `mysql_close@4'
    collect2: ld returned 1 exit status

    Merci à tous

    J'ai aussi essayer la méthode de : Dark_Ebola

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Quel EDI ?
    Tu as ajouté la librairie My_Sql .lib ou .a au linkage de ton projet ?

  3. #3
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Je suis sous Dev-C++ et j'ai ajouté le package mysql.devpack.. pour mysql.h

    Je viens de lire qu'il n'était pas possible de se connecter sur une base Free depuis sa machine.
    Pour les bases de chez OVH ça marche ?
    Il semblerait qu'il faille ajouter mysql.lib dans le même répertoire..

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par d-Rek
    Je suis sous Dev-C++ et j'ai ajouté le package mysql.devpack.. pour mysql.h
    Je ne connais pas Dev-C++ et encore moins ce que représente un package pour lui.
    my_sql.h c'est un header pas une librairie.

    Tu as un probléme de linkage parce que le .lib ou le .a de lib my_sql n'est pas lié à ton projet.

    Dans le menu Project/propertie tu as pas une partie qui te permet d'ajouter tes libs ?

  5. #5
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Oui j'ai linké libmysql.a et je n'ai plus d'erreurs, j'arrive à compiler le projet mais pas à lancer l'exe.

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par d-Rek
    J'essaie de lancer une requête SQL sur une base mySQL de chez Free mais en vain. J'implore votre aide !
    [HS]
    Pour info, Free n'acepte que les connexions locales à la base de données. Tu doit pouvoir disposer d'un répertoire CGI pour y mettre ton programme pour régler le problème
    [/HS]

  7. #7
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Euh ok je prends note, je vais potasser le sujet..
    Merci

    Edit : je posterai ici mon avancement : si ça fonctionne ou pas

  8. #8
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Rares sont les hebergeurs à accepter les cgis, je pense pas que free le gere..
    Et pour la connexion directe sur le serveur mysql, je pense qu'aucun hebergeur serieux ne l'autoriserait, sinon c'est la porte ouverte au crackage des bdd par force brute (remarque, ya toujours le ftp qui est crackable par force brute)

    Sinon, un truc m'a choqué, tu as inclus à la fois windows.h et unistd.h, je pensais pas qu'il existait un unistd.h pour windows

  9. #9
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Gruik> I'm a newbie in C

    Bon.. CGI, CGI, CGI...
    Programme exécuté par le serveur web pour généner du html.. donc une méthode de scripting pour serveur..

    Mon but était d'afficher une console ou une truc pas trop moche sur le bureau avec le résultat de ma requête rafraichie toutes les X minutes.
    Genre afficher le nombre de visiteurs live.. rien de bien compliqué

    Donc plouf.. ?

  10. #10
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Ou sinon, faut que j'affiche dans mon soft une page PHP..
    C'est plus simple..

    PS : le but est de mettre en place un PTI (Pratique des Techniques Informatiques ou quelque chose comme ça) Client/Serveur..

  11. #11
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Euh..
    J'arrive pas à transformer ma procédure curl() (fonction.h) en fonction qui me retourne la chaine chunk au lieu de faire un printf..

    J'ai essayé mais ça passe pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* curl(char* url){ .... return chunk; }
    cannot convert `MemoryStruct' to `char*' in return
    Idem pour un void* (bah j'aurai essayé)


    Résolu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* curl(char* url){ ..return chunk.memory; }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Tracage des requêtes lentes
    Par GyZmoO dans le forum Administration
    Réponses: 1
    Dernier message: 29/06/2010, 14h53
  2. [Oracle] Outil graphique pour lancer des requêtes ,
    Par falco- dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/02/2010, 10h50
  3. Lancer des requêtes DB2 par ligne de commande Unix
    Par rstephane dans le forum DB2
    Réponses: 3
    Dernier message: 27/05/2009, 15h36
  4. Réponses: 7
    Dernier message: 31/08/2006, 18h03
  5. [Delphi 2005] Lancer des requêtes MicroSoft Query
    Par Frank dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/10/2005, 19h27

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