ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库
向表中插入(刪除)一條數據 #include
#include
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
#include
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
#include
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
#include
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
#include
#include
#include
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 allTable;
MYSQL_ROW row = mysql_fetch_row( result );
while( NULL != row )
{
allTable.push_back( row[0] );
row = mysql_fetch_row( result );
}
for(vector::const_iterator cit = allTable.begin(); cit != allTable.end(); ++cit )
{
cout << *cit << "\t";
}
cout << endl;
mysql_free_result( result );
mysql_close( &mysql );
return 0;
}
總結
以上是生活随笔為你收集整理的ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ehSched.exe是什么进程 ehS
- 下一篇: mysql创建数据库没有默认值报错_详解