C++ ile MySQL Bağlantısı

Whistle

Ruhsuz :/
Kurucu
Geliştirici
Yardımsever Üye
Mesaj
11.941
Çözümler
567
Beğeni
13.659
Puan
5.915
Ticaret Puanı
2
Merhaba arkadaşlar,
Bu konumuzda C/C++ ile MySQL bağlantısı kurmayı ve sorgu çalıştırmayı anlatacağım.
Bilgisayarınızda MySQL serverin kurulu olması gerekmektedir.

C:
Genişlet Daralt Kopyala
#include <cstdio>
#include <cstdlib>
#include <cwchar>
#include <mysql/mysql.h>
#include <stdio.h>
#include <iostream>

int main()
{
    MYSQL *db;
    MYSQL_RES *res;
    MYSQL_ROW row;
    db = mysql_init(NULL);

    if(db == NULL)
    {
        printf("MySQL Error: %u %s\n", mysql_errno(db), mysql_error(db));
        exit(1);
    }

    // MySQL bağlantısı
    if (mysql_real_connect(db "localhost", "root", "root_sifresi", "veritabani_adi", 0, NULL, 0) == NULL)
    {
        printf("MySQL Bağlantı Hatası: %u: %s\n", mysql_errno(db), mysql_error(db));
        mysql_close(db);
        exit(1);
    }

    // Sorgu cümlesi. Eğer kullanıcı girişi alacaksanız şu şekilde yazabilirsiniz;
    // sprintf(QUERY,  "SELECT ad, soyad FROM tablo_adi WHERE yas = %d", yas);
    char QUERY[1024];
    sprintf(QUERY, "SELECT ad, soyad FROM tablo_adi");

    // Yazılan sorguyu çalıştırır.
    if (mysql_query(db, QUERY))
    {
        printf("Query hata: %s\n", mysql_error(db));
        mysql_close(db);
        exit(1);
    }

    // Sorgudan çıkan sonuçlar MYSQL_RES aktarılır ve döngü ile ekrana yazdırılır...
    res = mysql_use_result(db);
    printf("%-10s\t%-10s\n", "AD", "SOYAD");
    while((row = mysql_fetch_row(res)) != NULL)
    {
        printf("%-10s\t%-10s\n", row[0], row[1]);
    }

    mysql_free_result(res);
    mysql_close(db);

    return 0;
}

Ben Arch Linux üzerinde programı çalıştırdığım için şu komutu girerek derledim
g++ -g -o veritabani veritabani.cpp $(mysql_config --libs)


MySQL ile bağlantı sağlamak için libleri de $(mysql_config --libs) komutu sayesinde dahil ediyoruz. Kodun çıktısı şu oluyor;
-L/usr/lib -lmysqlclient -lpthread -lz -lm -lssl -lcrypto -ldl


Ben kendi yaptığım örnek uygulamanın görselini ekliyorum. Konuda verdiğim örnek kodlardan farklılıklar vardır. En basit haliyle anlatmak istedim.
cpp veritabani baglantisi sorgu sonuc.png
 
Elinize sağlık paylaşım için teşekkürler
 
Güzel paylaşım. Ama normalizasyon kurallarına uygun yaptın tabloları değil mi ?? :D Departmanı ayrı bir tabloya al ve idleri ile personel tablosuna çek. Görmüşken söyleyeyim dedim :)

:inside-out-hic-enerjim-yok:
 
Aynen dediğiniz şekilde 3 tane tablo var bunda hatta :D Linux'a geçersem orijinal sorgu cümlemi eklerim konuya
 
Geri
Üst