c 调用mysql密码为空_C语言连MySQL - osc_srnunz15的个人空间 - OSCHINA - 中文开源技术交流社区...

连接例程

用C语言连接MySQL数据库包含两个步骤“

初始化一个连接句柄结构;

实际进行连接。

初始化连接句柄

#include

MYSQL *mysql_init(MYSQL *);

通常传递NULL给这个例程,它会返回一个指向新分配的连接句柄结构的指针。

如果传递一个已有的结构,它将被重新初始化。

出错返回NULL。

连接

MYSQL *mysql_real_connect(MYSQL *connection,

const char *server_host,

const char *sql_user_name,

const char *sql_password,

const char *db_name,

unsigned int port_number,

const char *unix_socket_name,

unsigned int flags);

指针connection必须指向已经被mysql_init初始化过的结构。

server_host既可以是主机名,也可以是IP地址。如果是连接到本地,可以通过指定localhost来优化连接类型。

sql_user_name和sql_password,用户名和密码。

port_number和unix_socket_name应该分别为0和NULL,除非改变了MySQL安装的默认设置。

flag参数用来对一些定义的位模式进行OR操作,使得改变使用协议的某些特性。0。

如果无法连接,它将返回NULL。

关闭连接

void mysql_close(MYSQL *connection);

设置选项

int mysql_options(MYSQL *connection ,enum option_to_set,const char *argument);

一次只能设置一个选项,所以每设置一个选项就得调用它一次。

成功返回0。

仅能在mysql_init和mysql_real_connect之间调用。

并不是所有的选项都是char类型,因此它们必须被转换为const char *。

enum选项

实际参数类型

说明

MySQL_OPT_CONNECT_TIMEOUT

const unsigned int *

连接超时之前的等待秒数

MySQL_OPT_COMPRESS

None,使用NULL

网络连接中使用压缩机制

MySQL_OPT_COMMAND

const char *

每次连接建立后发送的命令

设置连接超时时间为7秒 unsigned int timeout = 7;

...

connection = mysql_init(NULL);

mysql_options(connection,MYSQL_OPT_CONNECT_TIMEOUT,(const char *)&timeout);

connection = mysql_real_connect(connection...

错误处理

unsigned int mysql_errno(MYSQL *connection);

char *mysql_error(MYSQL *connection);

mysql_errno的返回值实际上是错误码。

mysql_error的返回值是文本错误信息。

执行SQL语句

int mysql_query(MYSQL *connection,const char *query);

接受连接结构指针二号文本字符串形式的有效SQL语句(没有结束的分号)。

受影响的行数(UPDATE,INSERT或DELETE)

my_ulonglong mysql_affected_rows(MYSQL *connection);

返回受之前执行的UPDATE,INSERT或DELETE查询影响的行数。

返回数据的语句(SELECT)

一次提取所有数据

MYSQL_RES *mysql_store_result(MYSQL *connection);

在mysql_store_result调用成功之后,调用mysql_num_rows来得到返回记录的数目。

my_ulonglong mysql_num_rows(MYSQL_RES *result);

从使用mysql_store_result得到的结果结构中提取一行,并把它放到一个行结构中。

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

这个函数用来在结果集中进行跳转,设置将会被下一个mysql_fetch_row操作返回的行。参数offset的值是一个行号,0是第一行。

void mysql_data_seek(MYSQL_RES *result,my_ulonglong offset);

mysql_row_tell返回一个偏移值,用来表示结果集中的当前位置,它不是行号,不能用于mysql_data_seek.

MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);

完成了对数据的所有操作后,必须明确的调用mysql_free_result来让MySQL库完成善后处理

void mysql_free_result(MYSQL_RES *result);

一次提取一行数据

MYSQL_RES *mysql_use_result(MYSQL *connection);

处理返回的数据

unsigned int mysql_field_count(MYSQL *connection);

它接受连接对象,并返回结果集中的字段(列)数目。

简单的打印数据的代码:

void display_row(){

unsigned int field_count;

field_count = 0;

while(field_count < mysql_field_count(&my_connection)){

printf("%s",sqlrow[field_count]);

field_count++;

}

printf("\n");

}

MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result);

将元数据和数据提取到一个新的结构中

MySQL_FIELD结构中的成员

说明

char *name;

列名,字符串

char *table;

列所属的表名

unsigned int flags;

NOT NULL FLAG、PRI KEY FLAG、UNSIGNED FLAG. AUTO_ INCREMENT_FLAC和BINARY_ FLAG

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql怎么分组查询所有数据库_Mysql-4 分组查询与子查询

1、查询结果的分组操作a、分组允许把数据分为多个组&#xff0c;以便能对每个组进行聚集计算b、分组是在select语句的group by 子句中建立的注意&#xff1a;group by 只是创建分组&#xff0c;但并不保证分组里面的数据的排列顺序&#xff0c;需要使用order by 子句对分组里面…

mysql 多列union_Mysql联合查询UNION和UNION ALL的使用介绍

一、UNION和UNION ALL的作用和语法UNION 用于合并两个或多个 SELECT 语句的结果集&#xff0c;并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列&#xff0c;列也必须拥有相似的数据类型。同时&#xff0c;每条 SELECT 语句中的列的顺序必须相同.SQL UNION…

mysql导数据出指定数量_mysql导出指定数据或部份数据的方法

这个时候mysqldump可能就不大好使了&#xff0c;使用下面的方法则可以解决这个问题。方法一、insert和select结合使用1、新建一个表&#xff0c;比如new-table&#xff0c;包含所要导出的字段的名称&#xff0c;比如a,b,c2、使用insert into new-table (a,b,c) select a,b,c fr…

mysql update upper_MySQL数据处理函数upper、abs、date

1. 数据处理函数文本处理函数upper()转换大写函数SQL> select vend_name, upper(vend_name) as vend_name_upcase from vendors order by vend_name;soundex()发音类似函数SQL> select cust_name, cust_contact from customers where cust_contact Y. Lie;SQL> selec…

mysql与django交互_django与mysql交互

查看ubuntu已安装的所有软件&#xff1a;查看软件安装的路径查看开机启动的软件&#xff0c;需要额外安装插件&#xff1a;安装mysql&#xff1a;django setting配置&#xff1a;在model模块中添加如下建表语句&#xff1a;vi app/models.pymodel模块在app中&#xff0c;其中定…

深度系统如何安装mysql_deepin 安装mysql apache

# 如果MYSQL安装成功&#xff0c;就会有my-medium.cnfcp /usr/local/src/mysql-5.5.17/support-files/my-medium.cnf/etc/my.cnf# 设置权限chmod x /usr/local/mysqlchown -R mysql:mysql /usr/local/mysql# 配置开机自启动cp support-files/mysql.server /etc/init.d/mysqldch…

自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本

自动清理MySQL的Lock进程的脚本作者&#xff1a;小涵 | 来源&#xff1a;互联网 | 2018-07-13 21:01阅读: 915最近数据库服务器在某一时段进程数忽然暴增&#xff0c;导致数据库服务器死掉&#xff0c;根据日志查询&#xff0c;是由于Mysql大量Lock进程造成服务器进程数过高导致…

java 获取类方法_Java之反射机制三:获取类的方法

一.实体类BigDog.javapackage reflex;public class BigDog extends Dog {private Integer age;public String name;public BigDog(){}private void getDog(){}private BigDog(Integer age, String name) {this.age age;this.name name;}public String getName() {return name…

java 判断客户端_javaweb服务端判断客户端使用的是手机还是电脑访问

public class ToolCheckAgentIsMobile {private final static String[] agent { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" };/*** 判断User-Agent 是不是来自于手机** param ua* re…

java thread 多线程_java用Thread方式创建多线程

进程&#xff1a;一个正在执行的程序&#xff0c;每一个进程都有一个执行顺序&#xff0c;该顺序是一个执行路径&#xff0c;或者叫一个控制单元。线程&#xff1a;进程中一个独立的控制单元。线程控制着进程的执行。一个进程中至少有一个线程。java VM中至少有一个线程负责jav…

微信红包接口 java_【java微信开发】红包接口调用

//import相关类import java.io.FileInputStream;import java.security.KeyStore;import java.util.Date;import java.util.List;import java.util.Map;import javax.net.ssl.KeyManagerFactory;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocketFactory;import …

java多个类调用_JAVA问题总结之15-多个类之间的调用

JAVA问题总结之15-多个类之间的调用&#xff1a;代码&#xff1a;package java3;public class test1 {public static void main(String[] args){Pretimive t new Pretimive();for (int i0;iSystem.out.println(t.b[i]);}System.out.print("\n");t.b[0]true;t.b[2]tr…

java语言50到100之间素数和_用JAVA语言编写一程序,求100以内的所有素数

满意答案fdewj5902017.02.13采纳率&#xff1a;40% 等级&#xff1a;9已帮助&#xff1a;316人12345678910111213141516171819public static void main(String[] args) { for (int i 2; i < 100; i) { int temp (int) Math.sqrt(i); …

java矩阵面积_Java基础 矩阵面积

提供 数据结构与算法题目 的平台是LintCode&#xff0c;参考链接是&#xff1a;http://www.lintcode.com/zh-cn/问题描述&#xff1a;参考代码&#xff1a;public class Rectangle {/** Define two public attributes width and height of type int.*/// write your code herep…

java 字母冒泡排序_java实现冒泡排序

冒泡排序冒泡排序(Bubble Sort)&#xff0c;是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列&#xff0c;依次比较两个相邻的元素&#xff0c;如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元…

java修饰符的访问权限_java项目中修饰符的访问权限有哪些

java项目中修饰符的访问权限有哪些发布时间&#xff1a;2020-11-17 15:05:33来源&#xff1a;亿速云阅读&#xff1a;67作者&#xff1a;Leah这篇文章给大家介绍java项目中修饰符的访问权限有哪些&#xff0c;内容非常详细&#xff0c;感兴趣的小伙伴们可以参考借鉴&#xff0c…

java判断线程是否wait_Java并发编程之线程间通讯(上)wait/notify机制

线程间通信如果一个线程从头到尾执行完也不和别的线程打交道的话&#xff0c;那就不会有各种安全性问题了。但是协作越来越成为社会发展的大势&#xff0c;一个大任务拆成若干个小任务之后&#xff0c;各个小任务之间可能也需要相互协作最终才能执行完整个大任务。所以各个线程…

opensips mysql 认证_基于ubuntu中使用mysql实现opensips用户认证的解决方法

1 MySQL支持1.1 MySQL模块支持默认安装时&#xff0c;不包含MySQL模块。opensipsctlrc文件中包含了数据库配置的信息&#xff0c;要想让opensips支持mysql数据库&#xff0c;在编译安装的时候就要支持mysql模块。方法如下&#xff1a;(1)修改opensips中的Makefile.conf&#xf…

java 注解与反射_Java注解与反射直接上手

什么是注解(Annotation)注解顾名思义为注释、讲解&#xff0c;可以理解为一种标签或标记&#xff0c;可以用在类、方法或者域上。向类、方法等添加注解&#xff0c;相当于给他们贴上了一层标签。注解使用在使用注解时&#xff0c;在类名、方法名、域上直接用注解名即可。比如一…

java按钮退出_java – 如何在此程序中添加退出按钮?怎么样“清楚”?

我需要添加一个“清除计算器”的按钮,以及一个退出butPanel上的程序的按钮.它也需要是非常基本的Java代码,因为我是初学者,并且有一个糟糕的comp.sci.老师.我有一个带退出按钮的代码示例,但我不确定如何将它放入我的程序中.我已经尝试了这么多.此外,如果有一个更好的“错误检查…