linux(ubuntu)下C++访问mysql数据库_MySQL
Ubuntu
-
Ubuntu安装msyql
-
安装mysql数据库
sudo apt-get install mysql-server
Salin selepas log masuk -
安装mysql客户端
sudo apt-get install mysql-client
Salin selepas log masuk -
C API的基本类型
-
MYSQL
-
该结构代表1个数据库连接的句柄.
-
几乎所有的MySQL函数均使用它.
-
不应尝试拷贝MYSQL结构, 不保证这类拷贝结果会有用.
-
MYSQL_RES
-
该结构代表返回行的查询结果
-
MYSQL_ROW
-
这是1行数据的“类型安全”表示。它目前是按照计数字节字符串的数组实施的。
-
行是通过调用mysql_fetch_row()获得的。
-
官方文档地址
-
http://dev.mysql.com/doc/refman/5.1/zh/apis.html#c
Salin selepas log masuk -
代码
-
向表中插入(删除)一条数据
#include <iostream>#include <mysql/mysql.h>using namespace std;int main(int argc, char* argv[]){ //准备mysql的访问结构 MYSQL mysql; mysql_init( &mysql ); mysql_real_connect( &mysql, "192.168.16.114", //要访问数据库的IP地址 "root", //用户名 "root", //密码 "test", //要访问的数据库 3306, //该数据库的端口 NULL, //一般为NULL 0 //一般为0 ); //插入 string sql = "insert into student value(1, 'jp', 24, 'gzjd')"; //删除 //string sql = "delete from student where id = 33"; //执行sql语句 mysql_query( &mysql, sql.c_str() ); //关闭数据库连接 mysql_close( &mysql ); return 0;}//编译 //g++ file.cpp -o target -lmysqlclient//执行 //./target//验证 //成功
Salin selepas log masuk -
更新表内容
#include <iostream>#include <mysql/mysql.h>using namespace std;int main(int argc, char* argv[]){ MYSQL mysql; mysql_init( &mysql ); mysql_real_connect( &mysql, "192.168.16.114", "root", "root", "test", 3306, NULL, 0 ); string sql = "update student set name = 'pj' where id = 2"; mysql_query( &mysql, sql.c_str() ); mysql_close(&mysql); return 0;}
Salin selepas log masuk -
调用存储过程
#include <iostream>#include <mysql/mysql.h>using namespace std;int main(int argc, char* argv[]){ MYSQL mysql; mysql_init( &mysql ); mysql_real_connect( &mysql, "192.168.16.114", "root", "root", "test", 3306, NULL, 0 ); string sql = "call myPorc();"; int ret = mysql_query( &mysql, sql.c_str() ); // debug info// cout << mysql_error( &mysql );// cout << ret << endl; mysql_close(&mysql); return 0;}
Salin selepas log masuk -
查询数据表的内容
#include <iostream>#include <mysql/mysql.h>using namespace std;int main(int argc, char* argv[]){ MYSQL mysql; mysql_init( &mysql ); mysql_real_connect( &mysql, "192.168.16.114", "root", "root", "test", 3306, NULL, 0 ); string sql = "select * from student"; mysql_query( &mysql, sql.c_str() ); MYSQL_RES *result = NULL; result = mysql_store_result( &mysql ); //得到查询出来所有数据的条数 int row_count = mysql_num_rows( result ); cout << "all data number: " << row_count << endl; //得到字段的个数和字段的名字 int field_count = mysql_num_fields( result ); cout << "field count : " << field_count << endl; //得到所有字段的名字 MYSQL_FIELD* field = NULL; for( int i = 0; i < field_count; ++i) { field = mysql_fetch_field_direct( result, i ); cout << field->name << "/t"; } cout << endl; //显示表中的所有数据 MYSQL_ROW row = NULL; row = mysql_fetch_row( result ); while ( NULL != row ) { for( int i = 0; i < field_count; ++i) { cout << row[i] << "/t"; } cout << endl; row = mysql_fetch_row( result ); } mysql_free_result(result); mysql_close( &mysql ); return 0;}
Salin selepas log masuk -
得到指定数据库test中的所有表
#include <iostream>#include <string>#include <vector>#include <mysql/mysql.h>using namespace std;int main(int argc, char* argv[]){ //定义一个数据库连接句柄 MYSQL mysql; //对数据句柄进行初始化 mysql_init( &mysql ); //连接数据库 mysql_real_connect( &mysql, "192.168.16.114", "root", "root", "test", 3306, NULL, 0 ); //查询数据库 string sql = "show tables;"; mysql_query( &mysql, sql.c_str() ); MYSQL_RES *result = NULL; result = mysql_store_result( &mysql ); //得到查询出来所有数据记录的数量 vector<string> allTable; MYSQL_ROW row = mysql_fetch_row( result ); while( NULL != row ) { allTable.push_back( row[0] ); row = mysql_fetch_row( result ); } for(vector<string>::const_iterator cit = allTable.begin(); cit != allTable.end(); ++cit ) { cout << *cit << "/t"; } cout << endl; mysql_free_result( result ); mysql_close( &mysql ); return 0;}
Salin selepas log masuk

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

Artikel membincangkan mendapatkan MySQL terhadap suntikan SQL dan serangan kekerasan menggunakan pernyataan yang disediakan, pengesahan input, dan dasar kata laluan yang kuat. (159 aksara)
