[DNmeet]-----mysql 开发阶段(LINUX mysql数据库API)

MYSQL 开发文档

https://dev.mysql.com/doc/dev/mysql-server/8.0.12/structMYSQL__RES.html

linker command failed with exit code 1 (use -v to see invocation) 这是Xcode编译运行时,遇到的比较经典的报错。

造成这个问题的原因可能有以下情况:

一、文件重复

二、link Binary With Libraries 文件中引用的库没有找到

解决方法:

1.单击报错提示,如果右边不展示报错日子,右键这个错误提示,选择reaval in log (在日志中显示),如果还是不显示,看看切换一个taget

2.如果是文件重复,会显示重复的文件名称,复制文件名,全局搜索,把重复的文件删除掉

3.如果是没有找到文件,就Show in Finder 找到该文件,将该文件拖入项目中

4.在target-build Phases-Link Binary With Libraries中搜索该文件,将文件移除
————————————————
版权声明:本文为CSDN博主「HQ_iOS」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36487644/article/details/84959316

MYSQL *dn_conn= mysql_init(NULL);

LINUX mysql数据库API(主要来自于  码农教程网站)

http://www.manongjc.com/detail/8-dybhtgeqozlnvlv.html

一、常用的基本操作

1.        登录:mysql -h localhost -u root -p

-h:后面接的是主机名,表示你要连接到哪台主机的MySQL数据库。localhost(127.0.0.1)也可以是SV 连接的主机IP.

-u:后面接的是用户名,MySQL默认的就是root。

-p:指定需要使用密码登陆MySQL数据库,如果密码为空,该参数可以省略。登陆密码也可以直接输在-p后。

2.       查看数据库:show databases;

3.        创建数据库:create database 数据库名。

4.        进入数据库:Use 数据库名;

5.       创建表:create table myclass(表结构)

6.       查看表:describe 表名;

7.       插入数据:insert into myclass values("1230011","张三","20","1","山西");

8.       查看表中所有信息:select * from myclass

9.        查询表中某一列的数据或者某几列的数据:命令:select id,name from myclass;

10.     查询特定条件的数据:select * from myclass where id="1230011";

11.     修改数据表中的数据:update myclass set name="张大仙" where id='1230011';

12.     删除数据表中的数据: delete from myclass where name='张大仙';

13.     删除数据表中的某一列:alter table myclass drop age

14.     修改列名:alter table myclass change name students_name char(20) not null;

15.     数据表中插入列:alter table myclass add age char(10) not null ;

16.    删除表table1:drop table if exists table1;

17.    备份数据库testdb:mysqldump -h 192.168.3.143 -u root -p pwd -x --default-character-set=gbk >C:\testdb.sql

18.    删除数据库testdb:drop database testdb;

19.    恢复testdb数据库:mysql -u root -pleizhimin testdb <C:\testdb.sql

二、常用类型介绍

1. MYSQL

用于定义一个mysql对象,便于后续操作确定要操作的数据库是哪一个。

MYSQL mysql;  //mysql标记对应某个数据库1

2. MYSQL_ROW

用于定义一个行对象,其内容含有一行的数据。

MYSQL_ROW row;  //row[i]可用于输出该行第i个字段的数据1

3. MYSQL_FIELD

用于定义一个存储字段信息的对象。

MYSQL_FIELD *field;  //field->name存储对应字段名称

4. MYSQL_RES

用于定义一个存储数据库检索信息结果的对象。

MYSQL_RES *result;

 

三、常用函数介绍

其实在操作mysql数据库时,最常使用的函数有以下几个:

1. MYSQL * mysql_init()

用于初始化一个MYSQL对象,来连接mysql服务端。

MYSQL *mysql_init( MYSQL *mysql ); //成功返回MySQL结构指针,失败返回NULL

//example

MYSQL *mysql =mysql_init(NULL);

2. mysql_real_connect()

用于连接数据库

MYSQL *mysql_real_connect (

    MYSQL *mysql,   //初始化的MYSQL对象,与mysql_init()对应

    const char *host,   //主机地址

    const char *user,   //用户,例如:root

    const char *passwd,   //数据库的密码

    const char *db,   //要连接的数据库,例如:student

    unsigned int port,   //端口,可填0

    const char *unix_socket,   //一般为NULL

unsigned long client_flag);  //一般为0

//成功返回MySQL结构指针,失败返回NULL

//example

mysql_real_connect( &mysql, "localhost", "root",

                    "mypasswd", "student", 0, NULL, 0 );

3. mysql_query()

用于执行mysql命令。其参数应使用c风格字符串。

int  mysql_query( MYSQL *mysql, char * command );//成功返回0

//example

string command = "select * from info";

mysql_query( mysql, command.c_str() );

4. mysql_store_result()

用于获取mysql操作的检索结果。

//成功返回MYSQL_RES指針,失敗返回NULL

MYSQL_RES *mysql_store_result(MYSQL *mysql);

//example

MYSQL_RES *result;

result = mysql_store_result( &mysql );

5. mysql_num_rows()
 

用于获取结果集的行数。

mysql_num_rows( MYSQL_RES *result );

6. mysql_num_fields()

用于获取结果集的字段数。

mysql_num_fields( MYSQL_RES *result );

//example

int row_num;

row_num = mysq l_num_fields( result );

7. mysql_fetch_field()

用于获取下一个字段的类型。

MYSQL_FIELD* mysql_fetch_field(MYSQL_RES *result);1

8. mysql_fetch_row()

从结果集中获取下一行,结束返回NULL。

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
//example
MYSQL_ROW row;
while( row = mysql_fetch_row( result ), row != NULL ) {
    for( int i = 0; i < num; i++ ) {
        cout << row[i] << "\t\t";
    }
    cout << endl;
}

9. mysql_fetch_field_direct()

给定字段序号,返回字段类型,结束返回NULL。

MYSQL_FIELD* mysql_fetch_field_direct(MYSQL_RES *result, int i);
//example
int num = mysql_num_fields( result );  //返回字段个数
for( int i = 0; i < num; i++ ) {
    field = mysql_fetch_field_direct( result, i );  //返回字段类型
    cout << field->name << "\t\t";  //输出字段名
}

10. mysql_close()

用于关闭连接。

mysql_close( MYSQL *mysql );

11. 结构体MYSQL_RES  https://dev.mysql.com/doc/dev/mysql-server/8.0.12/structMYSQL__RES.html

typedef struct st_mysql_res {

  my_ulonglong row_count;                               // 结果集的行数

  unsigned int field_count, current_field;            // 结果集的列数,当前列

  MYSQL_FIELD *fields;                                    // 结果集的列信息

  MYSQL_DATA *data;                                      // 结果集的数据

  MYSQL_ROWS *data_cursor;                        // 结果集的光标

  MEM_ROOT field_alloc;                                   // 内存结构

  MYSQL_ROW row;                                         // 非缓冲的时候用到

  MYSQL_ROW current_row;                           //mysql_store_result时会用到。当前行

  unsigned long *lengths;                                //每列的长度

  MYSQL *handle;                                           // mysql_use_result会用。

  my_bool eof;                                                 //是否为行尾

} MYSQL_RES;

https://my.oschina.net/moooofly/blog/186456

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值