Mysql C语言API编程入门讲解之详细篇

API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能。
Mysql C语言API就是用C语言编写的Mysql编程接口,使用这些接口函数可以实现对Mysql数据库的查询等操作。
Mysql的安装
要进行Mysql编程首先要在充当Mysql服务器的电脑和本机上都安装Mysql,服务器上的Mysql用来连接查询,本机上的Mysql作为开发之用,当然本机也可以兼顾服务器和开发之用。下载Mysql可以到http://www.mysql.com/downloads/mysql/。鸡啄米安装的是“Windows (x86, 64-bit), MSI Installer”版本。
在Mysql安装过程中,安装选项一定要选上Development Components下的Client C API library(shared),这样才会将Mysql API的头文件和动态库安装到电脑中。
安装完成后,我们编程要用的就是include目录下的头文件和lib目录下的库文件。
Mysql API数据结构
Mysql API中用到了很多结构体等数据类型,下面就简单说说常用的几个数据结构的含义,至于它们的定义鸡啄米就不贴了,大家可以到Mysql提供的mysql.h头文件中查看。
MYSQL
连接数据库前,必须先创建MYSQL变量,此变量在很多Mysql API函数会用到。它包含了一些连接信息等数据。
MYSQL_RES
MYSQL_RES结构体中包含了查询结果集,也就是从数据库中查询到的数据。可以使用mysql_store_result或mysql_use_result函数获得。
MYSQL_ROW
MYSQL ROW的定义如下:
typedef char **MYSQL_ROW;
可见,它实际上是char **类型,指向一个字符串数组。可以通过mysql_fetch_row函数获得。
MYSQL_FIELD
MYSQL_FIELD中包含了字段名、字段类型和大小等信息。可以重复调用mysql_fetch_field函数获得所有字段的信息。
Mysql C API编程步骤
1、首先我们要包含mysql的头文件,并链接mysql动态库。即添加以下语句:
#include <WinSock2.h> // 进行网络编程需要winsock2.h
#include <mysql.h>
#pragma comment(lib, “libmysql.lib”)
2、创建MYSQL变量。如:
MYSQL mysql;
3、初始化MYSQL变量。
mysql_init(&mysql);
4、调用mysql_real_connect函数连接Mysql数据库。mysql_real_connect函数的原型如下:
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag);
参数说明:mysql--前面定义的MYSQL变量;host--MYSQL服务器的地址;user--登录用户名;passwd--登录密码;db--要连接的数据库;port--MYSQL服务器的TCP服务端口;unix_socket--unix连接方式,为NULL时表示不使用socket或管道机制;clientflag--Mysql运行为ODBC数据库的标记,一般取0。连接失败时该函数返回0。
5、调用mysql_real_query函数进行数据库查询。mysql_real_query函数的原型如下:
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);
参数说明:mysql--前面定义的MYSQL变量;q--SQL查询语句;length--查询语句的长度。
查询成功则该函数返回0。
6、通过调用mysql_store_result或mysql_use_result函数返回的MYSQL_RES变量获取查询结果数据。
两个函数的原型分别为:
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
这两个函数分别代表了获取查询结果的两种方式。第一种,调用mysql_store_result函数将从Mysql服务器查询的所有数据都存储到客户端,然后读取;第二种,调用mysql_use_result初始化检索,以便于后面一行一行的读取结果集,而它本身并没有从服务器读取任何数据,这种方式较之第一种速度更快且所需内存更少,但它会绑定服务器,阻止其他线程更新任何表,而且必须重复执行mysql_fetch_row读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用mysql_store_result。
7、调用mysql_fetch_row函数读取结果集数据。
上述两种方式最后都是重复调用mysql_fetch_row函数读取数据。mysql_fetch_row函数的原型如下:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
参数result就是mysql_store_result或mysql_use_result的返回值。
该函数返回MYSQL_ROW型的变量,即字符串数组,假设为row,则row[i]为第i个字段的值。当到结果集尾部时,此函数返回NULL。
8、结果集用完后,调用mysql_free_result函数释放结果集,以防内存泄露。mysql_free_result函数的原型如下:
void STDCALL mysql_free_result(MYSQL_RES *result);
9、不再查询Mysql数据库时,调用mysql_close函数关闭数据库连接。mysql_close函数的原型为:
void STDCALL mysql_close(MYSQL *sock);
Mysql C API编程实例
这里给大家一个简单的Mysql API编程实例。使用VS2010编写。访问的数据库为安装Mysql后默认创建的名称为“mysql”的数据库,查询其“user”表的数据,步骤如下:
1、创建一个Win32 Console Application(Win32控制台程序)的空工程(创建空工程需要在向导的Application Settings一步中,勾选Empty project),名称就取为mysql。
2、在Solution Explorer窗口的工程名“mysql”上点右键,选择“Properties”,弹出工程的属性页,然后在左侧子窗口中,选择Configuration Properties->VC++ Directories,右侧子窗口中会显示一些设置项列表,然后在Include Directories项中添加Mysql的Include目录,在Library Directories项中添加Mysql的lib目录。

网站挂马:预防为主 防治结合

  熟悉网站挂马问题的人应该明白有很多方法可以检查网站是否挂马,比较常用的方法是用死链工具进行查看。用扫死链工具查看整个网站的链接,找出其中有问题的链接,再到站内查看,把这些有问题的链接进行重点查看,看是否是挂马问题。另外,通过查看网站的源代码,也可以发现网站挂马的蛛丝马迹。例如,百度优化的网站如果被挂马的话,那么它的挂马代码是,如果网站的源文件中存在这类代码,网站就受到了网站挂马的威胁。

  发现了网站挂马问题后,我们需要及时的进行解决,从而使网站挂马问题可以在最短的时间内解决。网站挂马问题,比如整站挂马,就需要从源头上进行解决,更换网站的所有源文件;而网站中如果是首页挂马,那么就需要从网站的源文件中找出这样的链接地址,把它彻底去除掉。总之,遇到网站挂马问题也要具体问题具体分析,从而可以使网站挂马问题得到最好的解决。

解读网站优化的十大误区

  接触SEO这么久,看到很多朋友对于SEO还没有个清楚的认知,今天我们就把SEO十大误区总结了一下,希望能给大家一些帮助。
  一、百度权重=网站权重

  这里我们再简要的说一下,所谓百度权重是第三方平台给的一个词,与百度并无任何的关系。网站权重他是一个比较模糊的经验,具体目前没有什么具体的计算方式

  二、百度优化与其它搜索引擎优化不一样

  这是要看用什么方法去优化,就完全白帽手法来说的话,包括谷歌在内的排名都是差不多的,因为据第三方数据统计各大主流搜索引擎的前三页(30名)数据的重合率为50%左右,当然,你要要求所有的搜索引擎排名都一样,那是不可能的,因为各大搜索引擎更新技术稍微有影响因子的变化,结果就有很大的偏差。

解析网站推广和用户体验之间如何平衡

  不管是网站推广,还是用户体验对于站长来说都不陌生,但真正做好的却不多。为什么这么说呢?从现在很多网站还在天天采集和无节制无底线的发外链,就可以看出来。其实就目前的形势而言,现在的网站推广实质更多的是为了看似良好的网站数据,而进行的一些针对搜索引擎的行为。
  为什么现在互联网上垃圾信息遍布,为什么现在搜索引擎针对seo进行照顾。如果网站在推广的时候注重用户体验度,那么现在你就不用为网站被搜索引擎特殊照顾而发愁了。

  大家熟知网站推广的主要途径都有什么呢?站内大量采集发布行业内容,站外进行疯狂的外链发布,更极端的直接把链接偷偷挂在那些政府站和教育站上面,或者直接做页面跳转和流量劫持,还有就是大量购买黄金链之类的。这些行为根本就没有任何用户体验度可言,只是在利用搜索引擎的漏洞和算法进行作弊,从而来牟利。不管网站本身能不能向用户提供有价值的信息,只要能够吸引更多流量达到宣传目的就行了。我们知道这肯定违背了搜索引擎和用户最根本的意愿,用户使用搜索引擎的目的是为了寻找用户所需要的资料,而不是为了点击一个毫无价值的广告。搜索引擎打压seo行业,针对那些seo作弊进行算法升级,甚至不惜牺牲少量正常网站的利益来进行大规模的降权K站,如果我们不站在站长的角度,其实也就可以理解。

如何降低重复内容对网站优化产生的负面影响

  有很多原因导致相同的的内容刊登在不同网站,重复内容有机会能够让搜索结果显示相同资讯,让搜索结果的质数下降。为避免这情况发生,Google 表示会采取不收录重复内容网页的措施。当然现实之中,大家都经常可发现重复内容的网页出现在搜索结果内,尤以国内网站主。或者可以理解为Google 未算做得太彻底。不过作为内容的原作者,一定不希望自己的网站不被收录,而被复制的网站却收录了。为此,我们不应把重复内容的问题掉以轻心。
  第一:站内和跨站重复内容

  重复内容的网页可分为站内和夸网站两大类,前者大多是由于制作网站时的疏忽或内容管理系统的设定不当,导致不同URL显示同一内容,Google网站管理员说明中心很详细介绍减少站内重复内容的方法 。在以上网页中有一小段其实是关于夸站重复内容的,如果你一不留神,可能错过了。这小小一段文字其实才是重复内容最受网站制作者和SEOers 关注的地方。

怎样分辨网站是否优化过度

   先解释下什么是优化过度,优化过度说白了就是SEO做的太明显了,从本质上来说,百度是一个反SEO的搜索引擎,一旦SEO做的太过明显,例如关键词堆砌、垃圾链接、非自然写作之类的,往往百度会直接降权,理由就是严重影响客户体验。为什么用理由这个词呢,因为很多优化过度而降权的站实际上客户体验做的还是不错的,客户阅读起来相当简洁、一语中的。
  既然知道了百度是反SEO的,那么我们在网站优化过程中务必要提醒自己,千万不要优化过度,让百度找到把柄。
 

如何寻找站内文章?如何让文章快速被百度收录?

     编辑每天在写文章,每天那么多的文章写入,但是发现被百度收录的文章很少,网站的排名也上不去,到网上知名优化论坛看了看,发现了一些规律,按这个规律写文章,希望能提高文章的收录。
  做优化的都知道,写软文是做站外优化的一个重要手段,站长们可以通过在文章中放入链接,发到站外,提高网站的收录和排名,软文被转载的几率大,带来的流量,权重也就高点。

  想让网站快速被收录,先了解网站快速被收录的原因,主要原因有以下几点:

  原因一:文章题目名符合客户搜索的关键词和标题,标题是文章重点,标题写好了,有利于搜索引擎抓取,标题新颖些,被抓取的几率就大,毕竟百度喜欢新东西,文章标题适当的采用关键词和长尾词为标题。

网站优化提高用户体验

      我们在网站建设好之后,需要的是管理和优化。管理是为了网站更好的发展,优化是为了用户体验的提高。而提高用户体验有很多的方法,下面我们可以从一些方面来研究对于信息优化的方法。提高这方面用户体验,其实可以先从自身做起,也就是通过优化站内搜索的方式来帮助用户找到需要的信息。
  现在几乎所有的网站都会有这一块功能--站内搜索。它基本上是不可或缺的一部分。一般我们在丰富网站内容的时候,想要让用户直接找到目标内容,但是有些用户可能就没办法从首页或者导航页里面直接找到,这时候,站内搜素就起到它的作用了。站内搜索的用途其实就是先通过分析用户的搜索短语或者关键词。继而可以通过分析关键词来了解用户的需求,但是我们需要得到更有价值的信息的话,就需要基于搜索后的用户操作和行为分析。因为这样我们可以更直观了解到用户的需求。

如何选择合理关键词进行网站优化

    关键词在网站中的重要性不容置疑,选择正确而又热门的关键词,做好百度关键词的排名优化,不仅仅是为网站带来流量,还能有效促进所开展的业务量成倍翻番的增长,因此,如何做好百度关键词的排名优化,怎样布局,其实是蛮有学问的,并不是说关键词使用得越多、越热门,就可以排名靠前,就可以带来业务量的增长。
  首先,要结合自己网站的类别、性质,选择最为恰当的关键词,需要牢记一点的是,没有最好的关键词,只有最适合的关键词。因为不管关键词是如何的热门、引人注目,都必须和自已网站所经营的性质和方向相吻合,否则,哪怕是为网站带来再高的流量,也是无济于事;这就是为什么有的网站通过搜索引擎排名明明靠前,业务量却没什么增长,这就往往用的是风马牛不相及的热门关键词来吸引眼球,其结果引起了网民极大的反感,遑论接受网站的服务了。

网站优化之:如何做好低页面结构调整

   最近,页面结构的调整日益成为了话题。这与百度最近推出的石榴算法,是有直接性关联的。在这套新的算法中,明确的规定了过多存在低页面结构的网站,会受到相应性的影响。可见,这是搜索引擎算法再次的重磅出击。有力的规划网站,达到一定性的规范。
  做搜索引擎自然排名的网站,需要符合其相应性的规则。这样的话,才能够提升网站关键词的排名,提升网站整体的流量。针对这一因素,网站页面结构就需要作出相应性的判断,做合理的调节。对于网站中存在低质量的页面结构,就需要着手从两个方面进行改善。