Database MySQL dapat digunakan oleh program yang ditulis dalam bahasa pemrograman C pada Socrates dan Plato dan pada workstation IS Solaris. Detail lengkap tentang C API (Application Program Interface) diberikan dalam manual MySQL
Berikut contoh program (dalam file prog. c) harus dikompilasi dengan perintah Unix ini
Program ini menampilkan field kedua dan ketiga (bernomor 1 dan 2) dari setiap baris tabel people di database ucabwww dimana umur field lebih besar dari 30
MySQL adalah sistem manajemen basis data sumber terbuka (DBMS). Ini sangat populer di kalangan pengembang web karena merupakan bagian dari tumpukan LAMP (Linux, Apache, MySQL, PHP/Perl/Python). Banyak situs web skala besar populer seperti WikiPedia, Facebook, Youtube menggunakan database ini. Sering kali kita perlu menggunakan akses database MySQL dari program C. Di sini kita akan melihat cara mengakses database MySQL dari program C
Catatan. CentOS 7. 2 sistem operasi digunakan di sini untuk penginstalan database dan kompilasi kode. Ini harus sama untuk semua distribusi Linux berbasis RedHat
Menginstal MySql
Jika Anda sudah menginstal MySQL di sistem Anda, Anda dapat melewati bagian ini dan menggunakan database yang ada, jika tidak, jalankan perintah berikut untuk menginstal database MySQL
Harap diperhatikan bahwa Anda harus menjadi pengguna super (root) dan harus memiliki koneksi internet saat mengeluarkan perintah ini
wget //repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-serverMySQL berjalan sebagai layanan pada sistem Linux. Untuk memulai layanan MySQL, keluarkan perintah ini sebagai pengguna super (root)
systemctl start mysqldAnda juga dapat memeriksa apakah layanan tersebut benar-benar berjalan dengan perintah ini
systemctl status mysqld_Jika service sedang berjalan maka perintah ini akan menunjukkan aktif (running) seperti gambar di bawah ini
Membuat Tabel di Database
Pada bagian ini, kita akan membuat tabel sampel di database MySQL secara manual langsung di server database. Kami akan mengakses tabel itu dari program C nanti
Masuk ke basis data
Di bawah MySQL, Anda dapat memiliki banyak database. Tabel akan dibuat di bawah database. Anda dapat membuat database baru dengan mengeluarkan perintah ini
CREATE DATABASE mydb;_Sekarang Anda harus masuk ke dalam database dengan perintah
USE mydb;Buat tabel my_table di bawah database mydb menggunakan pernyataan SQL ini
CREATE TABLE my_table (table_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);_Masukkan beberapa entri ke tabel my_table
INSERT INTO my_table(first_name, last_name) VALUES('Cristiano', 'Ronaldo'); INSERT INTO my_table(first_name, last_name) values('Lionel', 'Messi'); _Anda dapat memeriksa entri tabel dengan kueri SQL ini
SELECT * FROM my_table;Akses database MySQL dari Program C
Untuk mengakses database MySQL, Anda harus memiliki paket mysql-devel di sistem Anda. Paket ini menyediakan pustaka berbagi dan file header yang diperlukan untuk pengembangan program klien MySQL. File header diperlukan untuk kompilasi program dan pustaka bersama digunakan saat run-time. Untuk mengecek apakah paket sudah terinstall dengan perintah ini
yum info mysql-develJika tidak diinstal, keluarkan perintah ini untuk menginstal mysql-devel
systemctl start mysqld0Berikut adalah program klien MySQL untuk mengakses entitas basis data seperti tabel, deretan tabel
Dalam program contoh kami di atas, kami menampilkan semua tabel di database mydb kami dan semua baris dari tabel my_table
Sebelum melakukan operasi database apa pun, kita perlu terhubung ke server database. Bagian kode ini melakukan itu
systemctl start mysqld2API mysql_init() menginisialisasi satu objek MYSQL dan mengembalikan alamat (penunjuk) objek tersebut jika alokasi berhasil. Jika fungsi gagal mengalokasikan objek MYSQL, maka akan mengembalikan NULL. Pointer yang dikembalikan akan digunakan sebagai pegangan untuk operasi database selanjutnya. Untuk mengakses elemen basis data apa pun seperti tabel atau bidang tabel apa pun, pertama-tama kita harus terhubung ke server basis data. Fungsi mysql_real_connect() digunakan untuk terhubung ke server database MySQL. Dibutuhkan alamat IP atau nama domain dari sistem tempat server MySQL berjalan. Karena server kami berjalan pada sistem yang sama tempat program akan berjalan, “localhost”
digunakan sebagai nama domain server. Jika Anda ingin mengakses database yang berjalan di mesin jarak jauh, Anda dapat menentukan nama domain atau Alamat IP dari mesin jarak jauh. Juga kita harus menentukan user id, password dan nama database. Dalam kasus kami, id pengguna adalah "root" dan nama basis data adalah "mydb"
systemctl start mysqld_3
Sepotong kode di atas mendapatkan semua nama tabel dari database MySQL yang terhubung. Untuk melakukannya, kita harus menjalankan kueri SQL yang dapat kita lakukan dengan menggunakan mysql_query() API. Untuk mendapatkan hasil dari kueri yang dieksekusi, kita harus menggunakan API mysql_use_result() atau mysql_store_result(). Di sini kami menggunakan mysql_use_result() yang tidak membawa seluruh hasil ke
sisi klien. Jadi kita harus memanggil mysql_fetch_row() untuk mengambil satu baris sekaligus dari server. Jika mysql_fetch_row() mengembalikan NULL, maka tidak ada lagi baris yang akan diambil. Kueri "tampilkan tabel" akan mengembalikan semua nama tabel dalam sebuah tabel. Jadi, while loop ini akan mengembalikan semua tabel yang tersedia dan mencetaknya. Nilai yang dikembalikan dari mysql_use_result() perlu dibebaskan oleh mysql_free_result() API
Bagian selanjutnya dari kode mengambil semua baris tabel my_table
systemctl start mysqld_4Di sini juga kami menggunakan mysql_query() API untuk mengeksekusi kueri SELECT SQL. Di sini kami menggunakan mysql_store_result() untuk mengambil semua baris yang dikembalikan ke klien
Dalam hal ini mysql_fetch_row() tidak akan membawa baris dari server, melainkan akan kembali dari res yang tersedia di memori klien (program kami)
Kode di bawah ini akan melintasi semua baris dan mencetaknya
systemctl start mysqld5API mysql_num_fields() mengembalikan nomor kolom dari tabel yang dikembalikan. Loop while luar diulangi melalui baris dan inner
for loop mencetak semua kolom dari satu baris
Dan akhirnya res jika dibebaskan menggunakan mysql_free_result()
Kompilasi Kode Klien MySQL
Mengkompilasi kode klien MySQL itu rumit. Pertama-tama Anda harus menginstal GCC di sistem Anda. Anda harus menyetel flag dan pustaka kompilasi yang tepat untuk ditautkan. Untuk melakukannya, kami akan menggunakan utilitas mysql_config untuk mendapatkan opsi kompiler. “mysql_config –cflags” mengembalikan flag C Compiler untuk menemukan file sertakan dan flag compiler kritis dan definisi yang digunakan saat mengkompilasi pustaka libmysqlclient. Dan Perpustakaan "mysql_config –libs" dan opsi yang diperlukan untuk terhubung dengan perpustakaan klien MySQL
Jika kode Anda disimpan dalam test. c C file, kemudian gunakan perintah ini untuk mengkompilasi kode
Biner keluaran akan disimpan sebagai mysqlc
Jika kita menjalankan programnya, outputnya akan terlihat seperti ini
systemctl start mysqld_7Penulis. Srikanta
Saya menulis di sini untuk membantu para pembaca mempelajari dan memahami pemrograman komputer, algoritma, jaringan, konsep OS, dll. dengan cara sederhana. Saya memiliki 20 tahun pengalaman kerja dalam jaringan komputer dan otomasi industri. Lihat semua posting oleh Srikanta