Akses MySQL menggunakan C

Dengan tutorial ini saya menyampaikan kepada masyarakat cara mengakses pangkalan data MySQL dari bahasa pengaturcaraan C dan tanpa menggunakan terlalu banyak ketergantungan, dengan hanya

libmysqlclient

Saya harap ia berguna untuk mereka yang memerlukan dokumentasi jenis ini dan dengan itu terus menyumbang kepada komuniti SL dan membantu mereka yang tidak mempunyai INTERNET.

konfigurasi

Mula-mula kita mesti memastikan bahawa kita mempunyai perpustakaan reka bentuk yang dipasang *-dev untuk dapat mengakses dari C / C ++ ke MySQL.

mysql_config --libs

Nampaknya seperti ini:

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

Sekiranya anda memeriksa bahawa perpustakaan tidak dipasang, kami memasangnya dengan arahan berikut:

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

Oleh kerana kami mengesahkan dan memasang apa yang kami perlukan untuk pautan antara MySQL dan C, kami meneruskan pembuatan pangkalan data:

BUAT ujian DATABASE; Ujian PENGGUNAAN; BUAT data JADUAL (id int AUTO_INCREMENT BUKAN KUNCI PERDANA NULL, nama varchar (40), umur int); MASUKKAN NILAI data (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);

Pengaturcaraan dan penyusunan

Kami terus membuat kod:

Pertanyaan.c

/ * perpustakaan untuk menggunakan * / #include / * perpustakaan yang membolehkan kami memanfaatkan sambungan dan pertanyaan dengan MySQL * / #include / * Untuk menggunakan printf, dll. * / int utama () {MYSQL * samb; / * pemboleh ubah sambungan untuk MySQL * / MYSQL_RES * res; / * pemboleh ubah yang akan mengandungi hasil pertanyaan * / MYSQL_ROW baris; / * pemboleh ubah yang akan mengandungi medan untuk setiap rekod yang dirujuk * / char * server = "localhost"; / * alamat pelayan 127.0.0.1, alamat localhost atau ip * / char * user = "root"; / * pengguna untuk membuat pertanyaan pangkalan data * / char * password = "root"; / * kata laluan untuk pengguna yang dimaksudkan * / char * database = "test"; / * nama pangkalan data untuk pertanyaan * / conn = mysql_init (NULL); / * inisialisasi untuk membatalkan sambungan * / / * sambungkan ke pangkalan data * / jika (! mysql_real_connect (samb, pelayan, pengguna, kata laluan, pangkalan data, 0, NULL, 0)) {/ * tentukan parameter sambungan yang telah ditetapkan sebelumnya * / fprintf (stderr, "% s \ n", mysql_error (samb)); / * jika ada kesalahan tentukan kesalahan mana yang * / keluar (1); } / * hantar pertanyaan SQL * / if (mysql_query (samb, "pilih * dari data")) {/ * definisi pertanyaan dan asal sambungan * / fprintf (stderr, "% s \ n", mysql_error ( samb)); jalan keluar (1); } res = mysql_use_result (samb);
	Printf("ID \ tNama \ t \ umur \ n"); sementara ((baris = mysql_fetch_row (res))! = NULL) / * gelung melalui pemboleh ubah res dengan semua rekod yang diperoleh untuk digunakan * /
		Printf("% s \ t% s \ t% s \ n", baris [0], baris [1], baris [2]); / * pemboleh ubah baris menjadi larik untuk bilangan medan dalam jadual * / / * pemboleh ubah res dilepaskan dan sambungan ditutup * / mysql_free_result (res); mysql_close (samb); }

Kami menyusun dengan:

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

Pengesahan

Kami melaksanakan:

./ Pertanyaan

Fuente: Blog Hugo4295


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   koratsuki kata

    Bagus, disimpan dalam gudang skrip dan tutorial konsol saya! +1 untuk pasangan anda ...

  2.   Rodrigo kata

    Helo, banyak tahniah atas semua yang ada di web mengenai masalah ini, anda adalah yang paling hampir dengan penyelesaiannya. sedikit keraguan, mengapa saya tidak boleh dilaksanakan ??

    pada masa comílar, ia tidak menandakan sebarang kesalahan tetapi tidak menghasilkan ./ser4

  3.   Andrello kata

    Ada idea bagaimana melakukannya di Fedora?

  4.   pemenang de la o kata

    Saya tidak setuju untuk berkongsi maklumat tetapi jika hak cipta tidak diletakkan kerana contoh ini dibuat oleh saya sejak 2011 dan berikut adalah alamat sumber asalnya

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

    1.    meriah kata

      Tidak ada masalah Victor, tetapi jika anda perhatikan saya tidak mengambil artikel dari laman web anda, tetapi dari yang lain, sayangnya mereka tidak meletakkan sumbernya. Namun, sekarang saya mengedit artikel itu .. 😉

  5.   alfonso ovidio lópez moral kata

    perkongsian pengetahuan yang sangat baik kebebasan

  6.   DANIELA FERNANDEZ kata

    Dan bagaimana sisipan boleh dibuat ???