C Access Veritabanına Fotoğraf Ekleme

C ile Veritabanına Fotoğraf Ekleme

Veritabanlarına fotoğraf eklemek, web uygulamaları ve diğer yazılım sistemleri için yaygın bir gereksinimdir. C programlama dili, veritabanlarına fotoğraf eklemek için güçlü özellikler sunar. Bu makale, C kullanarak veritabanlarına fotoğraf ekleme sürecini ayrıntılı olarak açıklayacaktır.

Veritabanı Bağlantısı Kurma

İlk adım, veritabanına bir bağlantı kurmaktır. Bu, mysql_connect() fonksiyonu kullanılarak yapılabilir:

c
MYSQL *conn;
conn = mysql_connect("localhost", "kullanici_adi", "sifre", "veritabani_adi");

Bu kod, “localhost” sunucusunda “kullanici_adi” ve “sifre” kimlik bilgilerini kullanarak “veritabani_adi” veritabanına bir bağlantı oluşturur.

Fotoğrafı Okuma

Ardından, eklemek istediğiniz fotoğrafı bir dosyadan okumanız gerekir. Bu, fopen() ve fread() fonksiyonları kullanılarak yapılabilir:

c
FILE *dosya;
dosya = fopen("fotograf.jpg", "rb");
char *fotograf_veri;
uzunluk = fread(fotograf_veri, 1, dosya_boyutu, dosya);

Bu kod, “fotograf.jpg” dosyasını ikili modda açar ve içeriğini fotograf_veri değişkenine okur. dosya_boyutu, dosyanın boyutudur.

Fotoğrafı Veritabanına Ekleme

Fotoğrafı veritabanına eklemek için mysql_query() fonksiyonunu kullanabilirsiniz:

c
char sorgu[1024];
sprintf(sorgu, "INSERT INTO fotograflar (fotograf) VALUES (?)");
MYSQL_STMT *stmt;
mysql_stmt_init(&stmt);
mysql_stmt_prepare(&stmt, sorgu, strlen(sorgu));
MYSQL_BIND bind[1];
memset(&bind, 0, sizeof(bind));
bind[0].buffer_type = MYSQL_TYPE_BLOB;
bind[0].buffer = fotograf_veri;
bind[0].buffer_length = dosya_boyutu;
mysql_stmt_bind_param(&stmt, bind);
mysql_stmt_execute(&stmt);

Bu kod, “fotograflar” tablosuna bir kayıt ekler ve “fotograf” sütununa fotoğraf verilerini ekler. sprintf() fonksiyonu, SQL sorgusunu oluşturur. mysql_stmt_init(), mysql_stmt_prepare() ve mysql_stmt_bind_param() fonksiyonları, sorguyu hazırlar ve parametreleri bağlar. mysql_stmt_execute() fonksiyonu, sorguyu yürütür.

Dosyayı Kapatma ve Bağlantıyı Kesme

Son olarak, dosyayı kapatmanız ve veritabanı bağlantısını kesmeniz gerekir:

c
fclose(dosya);
mysql_close(conn);

Örnek Kod

İşte C kullanarak veritabanına fotoğraf ekleyen tam bir örnek kod:

“`c

include

include

include

int main() {
// Veritabanı bağlantısı kur
MYSQL *conn;
conn = mysql_connect(“localhost”, “kullanici_adi”, “sifre”, “veritabani_adi”);

// Fotoğrafı oku
FILE *dosya;
dosya = fopen("fotograf.jpg", "rb");
char *fotograf_veri;
uzunluk = fread(fotograf_veri, 1, dosya_boyutu, dosya);

// Fotoğrafı veritabanına ekle
char sorgu[1024];
sprintf(sorgu, "INSERT INTO fotograflar (fotograf) VALUES (?)");
MYSQL_STMT *stmt;
mysql_stmt_init(&stmt);
mysql_stmt_prepare(&stmt, sorgu, strlen(sorgu));
MYSQL_BIND bind[1];
memset(&bind, 0, sizeof(bind));
bind[0].buffer_type = MYSQL_TYPE_BLOB;
bind[0].buffer = fotograf_veri;
bind[0].buffer_length = dosya_boyutu;
mysql_stmt_bind_param(&stmt, bind);
mysql_stmt_execute(&stmt);

// Dosyayı kapat ve bağlantıyı kes
fclose(dosya);
mysql_close(conn);

return 0;

}
“`

Faydalı Kaynaklar


Yayımlandı

kategorisi