Heim  >  Artikel  >  Datenbank  >  Einfache Datenabfrage für den Einstieg in MySQL

Einfache Datenabfrage für den Einstieg in MySQL

黄舟
黄舟Original
2017-01-19 15:50:551439Durchsuche

mysql_init initialisiert den Datenbanklink – ruft einen Link ab. mysql_real_connect stellt eine Verbindung zum Datenbankserver her und führt die mysql_query-Abfrage aus – die Abfrageanweisung ist eine Zeichenfolge, die jede Zeile separat abruft. mysql_store_result – die Ergebnisse werden im Link gespeichert und sind einmalig Abfrage. Tabellenkopf aus der Ergebnismenge abrufen. Informationen – mysql_fetch_fields – Kopfzeileninformationen werden im Speicherbereich gespeichert, auf den der Zeiger vom Typ MYSQL_FIELD zeigt. Analysieren Sie den Kopf – mysql_field_count, um die Anzahl der Spalten zu ermitteln. mysql_fetch_row ruft Daten Zeile für Zeile aus der Ergebnismenge ab und gibt Speicher frei, nachdem jede Spalte für jede Zeile analysiert wurde. Leerzeichen

Link schließen

Spezifischer Code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dlfcn.h>
#include <mysql/mysql.h>
int main()
{
    int     ret = 0;
    int     i = 0;
    MYSQL   mysql;
    MYSQL   *con = NULL;
    unsigned int fieldnum;  
    printf("hello....\n");
    con = mysql_init(&mysql);
    if (con == NULL)
    {
        ret = mysql_errno(&mysql);
        printf("func mysql_init() err :%d\n", ret);
        return ret;
    }
    con = mysql_real_connect(&mysql, "localhost", "root", "123456", "mydb2", 0, NULL, 0 );
    if (con == NULL)
    {
        ret = mysql_errno(&mysql);
        printf("func mysql_real_connect() err :%d\n", ret);
        return ret;
    }
    else
    {
        printf("func mysql_real_connect() ok\n");
    }
    //执行sql查询
    mysql_query(&mysql, "set names utf8");//解决中文乱码
    char *sql = "select *from employee";
    ret = mysql_query(&mysql, sql);
    if (ret != 0)
    {
        ret = mysql_errno(&mysql);
        printf("func mysql_query() err :%d\n", ret);
        return ret;
    }
    /*
    //获取结果集 一次性获取
    MYSQL_RES * sqlres =mysql_store_result( &mysql);
    if (sqlres == NULL)
    {
        ret = mysql_errno(&mysql);
        printf("func mysql_store_result() err :%d\n", ret);
        return ret;
    }
    */
    //对每一行分别进行检索
    MYSQL_RES * sqlres =mysql_store_result(&mysql);
    if (sqlres == NULL)
    {
        ret = mysql_errno(&mysql);
        printf("func mysql_store_result() err :%d\n", ret);
        return ret;
    }
    //从结果集,获取表头信息
    MYSQL_FIELD *fields = mysql_fetch_fields(sqlres);
    fieldnum = mysql_field_count(&mysql);
    for (i=0; i<fieldnum; i++)
    {
        printf("%s\t", fields[i].name);
    }
    printf("\n");
    //从结果集, 按照行获取信息信息
    MYSQL_ROW row = NULL; //(char **)
    //从结果集中一行一行的获取数据
    while (  row = mysql_fetch_row(sqlres))
    {
        fieldnum = mysql_field_count(&mysql); 
        //优化,我的行有多少列。。。。查找这样的api函数
        for (i=0; i<fieldnum; i++) //经过测试 发现 不是以0结尾的指针数组。。
        {
            printf("%s\t", row[i]);
        }
        printf("\n");
    }
    mysql_free_result(sqlres);
    mysql_close(&mysql);
    return ret;
}

Das Obige ist Der Inhalt einer einfachen Datenabfrage für den Einstieg in MySQL finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn