C kullanarak MySQL'e erişin

Bu eğitimle, topluluğa bir MySQL veritabanına C programlama dilinden ve çok fazla bağımlılık kullanmadan nasıl erişileceğini sunuyorum.

libmysqlclient

Umarım bu tür belgelere ihtiyaç duyanlar için faydalı olur ve böylece SL topluluğuna katkıda bulunmaya ve INTERNET'e sahip olmayanlara yardımcı olmaya devam eder.

yapılandırma

Öncelikle tasarım kitaplıklarının kurulu olup olmadığını kontrol etmeliyiz *-dev C / C ++ 'dan MySQL'e erişebilmek.

mysql_config --lib'ler

Şöyle bir şey görünmeli:

-Wl, -Bsymbolic-functions –L / usr / lib / mysql -lmysqlclient rdynamic

Kitaplığın kurulu olmadığını kontrol etmeniz durumunda, aşağıdaki komutla kuruyoruz:

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-katı-aliasing -DUNIV_LINUX -DUNIV_LINUX

MySQL ve C arasındaki bağlantı için ihtiyacımız olanı doğrulayıp kurduğumuz için, veritabanının oluşturulmasına geçiyoruz:

VERİTABANI OLUŞTUR testi; KULLANIM testi; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name varchar (40), age int); INSERT INTO data VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , "Gustavo Romero", 25);

Programlama ve derleme

Kodu oluşturmaya devam ediyoruz:

Query.c

/ * kullanacağımız kitaplıklar * / #include / * MySQL ile bağlantıları ve sorguları kullanmamızı sağlayan kitaplık * / #include / * Printf vb. Kullanmak için * / int main () {MYSQL * bağl; / * MySQL için bağlantı değişkeni * / MYSQL_RES * res; / * sorgunun sonucunu içerecek değişken * / MYSQL_ROW satırı; / * başvurulan her kayıt için alanları içerecek değişken * / char * server = "localhost"; / * sunucu adresi 127.0.0.1, localhost veya ip adresi * / char * user = "root"; / * kullanıcı veritabanını sorgulayacak * / char * password = "root"; / * söz konusu kullanıcının şifresi * / char * database = "test"; / * sorgulanacak veritabanının adı * / conn = mysql_init (NULL); / * Bağlantıyı sıfırlamak için başlatma * / / * veritabanına bağlan * / if (! mysql_real_connect (conn, server, user, password, database, 0, NULL, 0)) {/ * önceden ayarlanmış bağlantı parametrelerini tanımla * / fprintf (stderr, "% s \ n", mysql_error (bağ)); / * bir hata varsa hangi hatanın * / exit (1) olduğunu tanımlayın; } / * SQL sorgusu gönder * / if (mysql_query (bağ, "veriden * seç")) {/ * sorgunun tanımı ve bağlantının kaynağı * / fprintf (stderr, "% s \ n", mysql_error ( conn)); çıkış (1); } res = mysql_use_result (bağl);
	printf("Kimlik \ tAd \ t \ yaş \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * kullanım için elde edilen tüm kayıtlarla res değişkeni üzerinden döngü * /
		printf("% s \ t% s \ t% s \ n", satır [0], satır [1], satır [2]); / * satır değişkeni tablodaki alanların sayısına göre bir dizi haline gelir * / / * res değişkeni bırakılır ve bağlantı kapatılır * / mysql_free_result (res); mysql_close (bağ); }

Şunlarla derliyoruz:

gcc -o Query $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)

Doğrulama

Yapıyoruz:

./Sorgu

kaynak: Hugo4295'in Blogu


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   koratsuki dijo

    İyi ki, konsolumdaki senaryo ve eğitim cephaneliğime kaydedildi! Partneriniz için +1 ...

  2.   rodrigo dijo

    Merhaba, bu konuyla ilgili web'de bulunan her şey için çok tebrikler, çözüme en yakın olan sizinki oldu. sadece biraz şüphe, neden yürütülebilir dosyayı alamıyorum ??

    yorum anında herhangi bir hatayı işaretlemez ancak ./ser4

  3.   Andrélo dijo

    Fedora'da nasıl yapılacağı hakkında bir fikriniz var mı?

  4.   galip de la o dijo

    Bilginin paylaşılmasına katılmıyorum, ancak bu örnek benim tarafımdan 2011'den beri yapıldığından telif hakkı konulmamışsa ve işte orijinal kaynağın adresi

    http://hugo4295.blogspot.mx/search?q=MYSQL

    1.    ela dijo

      Sorun değil Victor, ama fark ederseniz makaleyi sizin sitenizden almadım ama başka bir yerden maalesef kaynağı koymadılar. Ancak, şu anda makaleyi düzenliyorum .. 😉

  5.   Alfonso Ovidio López Morales dijo

    mükemmel paylaşım bilgisi büyük özgürlük

  6.   DANIELA FERNANDEZ dijo

    Ve nasıl eklemeler yapılabilir ???