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
Bagus, disimpan dalam gudang skrip dan tutorial konsol saya! +1 untuk pasangan anda ...
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
Ada idea bagaimana melakukannya di Fedora?
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
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 .. 😉
perkongsian pengetahuan yang sangat baik kebebasan
Dan bagaimana sisipan boleh dibuat ???