mysql_query()
<<<
mysql_real_connect() mysql_real_escape_string()
>>>

21.2.3 Description des fonctions de l'API C
21.2 API MySQL C
21 API MySQL
 Manuel de Référence MySQL 4.1 : Version Française

mysql_affected_rows()
mysql_change_user()
mysql_character_set_name()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_debug()
mysql_drop_db()
mysql_dump_debug_info()
mysql_eof()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_field()
mysql_fetch_fields()
mysql_fetch_field_direct()
mysql_fetch_lengths()
mysql_fetch_row()
mysql_field_count()
mysql_field_seek()
mysql_field_tell()
mysql_free_result()
mysql_get_client_info()
mysql_get_client_version()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_get_server_version()
mysql_info()
mysql_init()
mysql_insert_id()
mysql_kill()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_options()
mysql_ping()
mysql_query()
->mysql_real_connect()
mysql_real_escape_string()
mysql_real_query()
mysql_reload()
mysql_row_seek()
mysql_row_tell()
mysql_select_db()
mysql_set_server_option()
mysql_shutdown()
mysql_sqlstate()
mysql_ssl_set()
mysql_stat()
mysql_store_result()
mysql_thread_id()
mysql_use_result()
mysql_warning_count()
mysql_commit()
mysql_rollback()
mysql_autocommit()
mysql_more_results()
mysql_next_result()

21.2.3.43 mysql_real_connect()

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)

Description mysql_real_connect() essaye de se connecter à une base de données MySQL tournant sur l'hôte. mysql_real_connect() doit se terminer correctement avant que vous ne puissiez aucune autre fonction de l'API, à l'exception de mysql_get_client_info() .

Les paramètres sont spécifiés comme suit :

  • Le premier paramètre doit être l'adresse d'une structure MYSQL existante. Avant d'appeler mysql_real_connect() vous devez appeler mysql_init() pour initialiser la structure MYSQL . Vous pouvez changer un tas d'options de connexion en appelant mysql_options() . mysql_options() .
  • La valeur de host peut être un nom de domaine ou une adresse IP. Si host est NULL ou égal à la chaîne "localhost" , une connexion à la machine local est essayée. Si le système supporte les sockets (Unix) ou les tunnels nommés (Windows), elles sont utilisées au lieu de TCP/IP pour se connecter au serveur.
  • La paramètre user contient l'identifiant MySQL de l'utilisateur. Si user est NULL , l'utilisateur courant est sous-entendu. Avec Unix c'est l'utilisateur courant. Avec Windows ODBC, le nom de l'utilisateur courant doit être spécifié explicitement. Comment remplir les différents champs dans le programme d'administrateur ODBC .
  • La paramètre passwd contient le mot de passe de user . Si passwd est NULL , seules les entrées de la table user pour l'utilisateur ayant un champ vide seront testées. Cela permet à l'administrateur de mettre en place le système de privilèges MySQL de façon à ce que les utilisateurs aient divers privilèges selon qu'ils aient spécifié ou pas de mot de passe.Note : N'essayez pas d'encrypter le mot de passe avant l'appel à mysql_real_connect() ; l'encryptage du mot de passe est gérée automatiquement par l'API du client.
  • db est le nom de la base de données. Si db n'est pas NULL , la connexion changera la base par défaut en cette valeur.
  • Si port est différent de 0, sa valeur sera utilisé comme port de connexion TCP/IP. Notez que le paramètre host détermine le type de la connexion.
  • Si unix_socket n'est pas NULL , la chaîne spécifie la socket ou le tunnel nommé à utiliser. Notez que le paramètre host détermine le type de la connexion.
  • La valeur de client_flag est habituellement 0, mais peut être la combinaison des options suivantes dans des circonstances très spéciales :
    Nom de l'option Description
    CLIENT_COMPRESS Utilise le protocole compressé.
    CLIENT_FOUND_ROWS Retourne le nombre de lignes trouvées, et non de lignes affectées.
    CLIENT_IGNORE_SPACE Autorise les espaces après les noms de fonctions. Rend tous les noms de fonctions des mots réservés.
    CLIENT_INTERACTIVE Autorise interactive_timeout secondes (au lieu de wait_timeout secondes) d'innactivité avant de fermer la connexion.
    CLIENT_LOCAL_FILES Active le support de LOAD DATA LOCAL .
    CLIENT_MULTI_STATEMENTS Indique au serveur que le client peut envoyer des requêtes multiples (séparées par des ';' ). Si cette option n'est pas configurée, les commandes multiples sont désactivées. Nouveau en 4.1.
    CLIENT_MULTI_RESULTS Indique au serveru que le client peut gérer des jeux de résultats multiples, issus de commandes multiples, ou de procédures stockées. C'est automatique si l'option CLIENT_MULTI_STATEMENTS est active. Nouveau en 4.1.
    CLIENT_NO_SCHEMA N'autorise pas la syntaxe db_name.tbl_name.col_name . Cela est fait pour ODBC. Il fait génèrer une erreur à l'analyseur si vous utilisez cette syntaxe, ce qui peut se réveler fort utile pour la chasse aux bogues dans les programmes ODBC.
    CLIENT_ODBC Le client est un client ODBC. Cela rend mysqld plus accueillant vis à vis de ODBC.
    CLIENT_SSL Utilise SSL (protocole encrypté).
Valeur de retour Un gestionnaire de connexion MYSQL* si la connexion a réussi, NULL si elle a échoué. Pour une connexion à succès, la valeur de retour est la même que la valeur du premier paramètre. Erreurs
    CR_CONN_HOST_ERROR
    Impossible de se connecter au serveur MySQL.
    CR_CONNECTION_ERROR
    Impossible de se connecter au serveur MySQL local.
    CR_IPSOCK_ERROR
    Impossible de créer une socket IP.
    CR_OUT_OF_MEMORY
    Plus de mémoire.
    CR_SOCKET_CREATE_ERROR
    Impossible de créer une socket UNIX.
    CR_UNKNOWN_HOST
    Impossible de trouver l'adresse IP de l'hôte.
    CR_VERSION_ERROR
    Une disparité de protocole a résulté de la tentative de connexion à un serveur avec une bibliothèque de client qui utilise une version différente du protocole. Cela peut arriver si vous utilisez une très vieille bibliothèque cliente pour vous connecter à un serveur qui n'a pas été démarré avec l'option --old-protocol .
    CR_NAMEDPIPEOPEN_ERROR
    Impossible de créer un tunnel nommé sur Windows.
    CR_NAMEDPIPEWAIT_ERROR
    Impossible d'attendre un tunnel nommé sur Windows.
    CR_NAMEDPIPESETSTATE_ERROR
    Impossible d'obtenir un gestionnaire de tunnel sur Windows.
    CR_SERVER_LOST
    Si connect_timeout > 0 et qu'il a fallu plus de connect_timeout secondes pour se connecter au serveur, ou que celui-ci n'a plus répondu durant l'exécution de init-command .
Exemple

MYSQL mysql;

mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Impossible de se connecter à la base de données, erreur : %s\n",
          mysql_error(&mysql));
}
En utilisant mysql_options() la bibliothèque MySQL lira les sections [client] et [your_prog_name] dans le fichier my.cnf ce qui assurera le bon fonctionnement de votre programme, même si quelqu'un a configuré MySQL d'une façon non-standard.

Notez que pendant la connexion, mysql_real_connect() configure l'option reconnect (partie de la structure MYSQL ) à 1 . Cette option indique, dans le cas où une requête ne peut être exécutée à cause d'une déconnexion, d'essayer de se reconnecter au serveur avant d'abandonner.

<< mysql_real_connect() >>
mysql_query() Description des fonctions de l'API C mysql_real_escape_string()