linux(ubuntu)下C++访问mysql数据库_MySQL
Ubuntu
-
Ubuntu安装msyql
-
安装mysql数据库
sudo apt-get install mysql-server
登录后复制 -
安装mysql客户端
sudo apt-get install mysql-client
登录后复制 -
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
登录后复制 -
代码
-
向表中插入(删除)一条数据
#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//验证 //成功
登录后复制 -
更新表内容
#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;}
登录后复制 -
调用存储过程
#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;}
登录后复制 -
查询数据表的内容
#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;}
登录后复制 -
得到指定数据库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;}
登录后复制

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)
