C Veri Tabanından Resim Ekleme ve Çekme
Veri tabanları, verileri yapılandırılmış bir şekilde saklamak için kullanılan önemli araçlardır. Resimler, günümüzün dijital dünyasında yaygın olarak kullanılan veri türlerinden biridir. C programlama dilinde, veri tabanlarına resim eklemek ve çekmek için çeşitli yöntemler mevcuttur. Bu makale, C’de veri tabanından resim ekleme ve çekme işlemlerini ayrıntılı bir şekilde inceleyecektir.
Veri Tabanı Bağlantısı Kurma
Veri tabanına resim eklemek veya çekmek için öncelikle bir bağlantı kurmanız gerekir. Bu, mysql_connect()
veya mysqli_connect()
gibi C’de bulunan yerel işlevler kullanılarak yapılabilir. Bağlantı kurulduktan sonra, veri tabanını seçmeniz ve sorgu çalıştırmanız gerekir.
Resim Ekleme
Veri tabanına resim eklemek için INSERT
ifadesi kullanılır. INSERT
ifadesi, resmin saklanacağı tabloyu, sütunları ve değerleri belirtir. Aşağıdaki kod örneği, “images” adlı bir tabloya “image” adlı bir sütuna bir resim ekler:
“`c
MYSQL conn;
MYSQL_STMT stmt;
MYSQL_BIND bind[2];
char *query = “INSERT INTO images (image) VALUES (?)”;
// Veri tabanı bağlantısı kur
conn = mysql_connect(“localhost”, “kullanıcı_adı”, “şifre”, “veri_tabanı_adı”);
// Hazırlanan ifade oluştur
stmt = mysql_stmt_init(conn);
mysql_stmt_prepare(stmt, query, strlen(query));
// Bağlama parametrelerini ayarla
memset(bind, 0, sizeof(bind));
bind[0].buffer_type = MYSQL_TYPE_BLOB;
bind[0].buffer = (void *) resim_veri;
bind[0].buffer_length = resim_boyutu;
// Bağlamaları ifadeye ekle
mysql_stmt_bind_param(stmt, bind);
// İfadeyi çalıştır
mysql_stmt_execute(stmt);
// İfadeyi kapat
mysql_stmt_close(stmt);
// Bağlantıyı kapat
mysql_close(conn);
“`
Resim Çekme
Veri tabanından resim çekmek için SELECT
ifadesi kullanılır. SELECT
ifadesi, resmin çekileceği tabloyu, sütunları ve koşulları belirtir. Aşağıdaki kod örneği, “images” adlı bir tablodan “image” adlı bir sütunu çeker:
“`c
MYSQL conn;
MYSQL_STMT stmt;
MYSQL_BIND bind[1];
char *query = “SELECT image FROM images WHERE id = ?”;
// Veri tabanı bağlantısı kur
conn = mysql_connect(“localhost”, “kullanıcı_adı”, “şifre”, “veri_tabanı_adı”);
// Hazırlanan ifade oluştur
stmt = mysql_stmt_init(conn);
mysql_stmt_prepare(stmt, query, strlen(query));
// Bağlama parametrelerini ayarla
memset(bind, 0, sizeof(bind));
bind[0].buffer_type = MYSQL_TYPE_BLOB;
bind[0].buffer = (void *) resim_veri;
bind[0].buffer_length = resim_boyutu;
// Bağlamaları ifadeye ekle
mysql_stmt_bind_param(stmt, bind);
// İfadeyi çalıştır
mysql_stmt_execute(stmt);
// İfadeyi kapat
mysql_stmt_close(stmt);
// Bağlantıyı kapat
mysql_close(conn);
“`
Faydalı Siteler ve Dosyalar
- MySQL Veri Türleri
- MySQL Hazırlanan İfadeler
- MySQL Bağlama Parametreleri
- C Veri Tabanı Bağlantısı Örneği
- C Veri Tabanından Resim Ekleme Örneği
- C Veri Tabanından Resim Çekme Örneği