当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-05-02 15:44:00  来源:本站整理

MySQL数据库技术(29)[MySQL防范]

赞助商链接



  本文“MySQL数据库技术(29)[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

? MySQL供利用C编程语言编写的客户机库,可以用它编写拜候M y S Q L的客户机程序.这个库定义了利用程序编程接口,包含下面的实用程序:
? ? ■ 成立和终止与服务器会话的衔接纳理例程.
? ? ■ 构造查询的例程,将例程发送到服务器,并处理后果.
? ? ■ 当其他C API调用失利时,肯定错误精确缘由的状况和错误报告函数.
? ? 本章介绍若何用客户机库编写自己的程序.我们要记着的一些要点是,自己的程序与MySQL 分发包中已有的客户机程序的一致性,代码的模块性和可重用性.本章假定您知道用C编程的一些知识,但并不一定是专家.本章从简单到复杂大概地开辟了一系列的客户机程序.这个历程是第一部份开辟了一个程序框架,该框架除了与服务器衔接和断开以外不能作任何事情.这样做的缘由是,固然MySQL 客户机程序是为差别的目的而编写的,但它们都有一个共同点:即成立与服务器的衔接.
? ? 我们将用以下步骤来成立这个程序框架:
? ? 1. 编写一些衔接和断开的扼要代码(客户机程序1).
? ? 2. 增添一些错误查抄(客户机程序2).
? ? 3. 使衔接代码模块化和可重用化(客户机程序3).
? ? 4. 增添获得运行时衔接参数的本领(主机,用户,口令)(客户机程序4).
? ? 这个框架普通是公道的,可以利用它作为编写肆意数目的客户机程序的底子.开辟它今后,我们将暂不考虑若何处理各种问题.首先,我们将谈论若何处理特定的硬编码的S Q L语句,然后再开辟用于处理肆意语句的代码.在这之后,将查询处理的代码增添到客户机程序框架中,开辟另一个程序(客户机程序5),它近似于mysql 客户机程序.我们也将考虑(并办理)一些通用的问题,如"若何获得有关表的构造信息?"和"如安在数据库中插入图象?"只有在需求时,本章才谈论客户机库的函数和数据范例.要想理解全部函数和范例的列表,请参阅附录F"C API 参考".可以用这个附录作为利用客户机库任何部份的进一步的后台信息的参考.
? ? 样例程序可以由联机下载得到,可以直接利用,而没必要再键入它们.有关的指导,请参阅附录A"得到和安装软件".
? ? 在那边探求样例
? ? MySQL 邮件清单的一个共同问题就是"我在那边可以找到一些用C 写的客户机样例?".当然,这个答案是"就在本书里!".但是,很多人仿佛并没有考虑的是MySQL分发包中包含了若干客户机程序(比方mysql、mysqladmin 和mysqldump),这些大部份都是用C编写的.因为这个分发包可以很简单地以源程序情势利用,所以MySQL 供应非常少的样例客户机代码.因此,假如您还没有这样做,找个时间找到源程序分发包,在客户机目录中查看这些程序.MySQL 客户机程序为同享软件,从那边可认为自己的程序安闲地借用代码.
? ? 在本章供应的样例和MySQL 分发包中包含的客户机程序之间,可以找到与自己编写程序时想做的事情相近似的代码.假如是这样,可以通过拷贝和改正已有的程序来重新利用代码.应当阅读本章,理解客户机库是若何工作的.但是,请记着,并不老是需求自己编写琐碎的每件事情(您将注意到,在本章编写程序的谈论中,代码的可重用性是目的之一).通过利用其他人编好的程序,可以避免很多工作,那是最好的.
? ? 6.1 成立客户机程序的普通历程
? ? 本节介绍利用M y S Q L客户机库编译和衔接程序所包含的步骤.差别的系统成立客户机程序的号令也有所差别,大概需求略微改正一下这里介绍的号令.但是,这里的阐明是通用的,应当可以将它用于几近您编写的任何客户机程序中.
? ? 6.1.1 基本的系统需求
? ? 当您用C 编写MySQL 客户程序时,明显将需求一个C 编译程序.这里阐明的样例利用gcc.除了自己的源文件以外,还将需求下列程序:
? ? ■ MySQL 头文件.
? ? ■ MySQL 客户机库.
? ? MySQL 头文件和客户机库构成客户机编程的支持程序.它们大概已经安装到您的系统上.假如没有,应获得它们.假如MySQL 从源程序分发包或二进制分发包中安装,则客户机可编程的支持程序应当已经作为该处理的一部份安装了.假如MySQL 是从RPM 文件中安装的,
则除非安装了开辟程序R P M,不然就没有这种支持.假如需求安装MySQL 头文件和库,请参阅附录A.
? ? 6.1.2 编译和衔接客户机程序
? ? 要想编译和衔接客户机程序,就必须指定MySQL 头文件和客户机库的位置,因为它们普通不安装在编译程序和衔接程序缺省搜索的位置.关于下面的样例,假定头文件和客户机库的位置为/usr/local/include/mysql 和/ usr / local / lib / mysql.要想奉告编译程序若何探求MySQL 头文件,则当将源文件编译为目标文件时,传送给它一个-I/usr/local/include/mysql 参数.比方,可以利用这样的号令:
MySQL数据库技术(29)
? ? 要想奉告衔接程序在哪,可以找到客户机库和它的名称,当衔接目标文件产生一个可履行的二进制文件时,传送-L/usr/local/lib/mysql 和-lmysqlclient 参数,以下所示:
MySQL数据库技术(29)
? ? 假如客户机程序包含多个文件,则全部目标文件的名称都要列在衔接号令上.假如衔接步骤招致不能找到必须的floor() 函数的错误,则通过在号令行的背面增添- l m,衔接到数学库:
MySQL数据库技术(29)
? ? 大概还需求增添其他的库.比方,在Solaris 上大概需求-lsocket -lnsl.
? ? 假如没有利用make 成立程序,则倡议您理解一下若何举行,以便没必要手工地键入很多成立程序的号令.假定有一个客户机程序myclient,包含两个源文件main.c 和aux.c,及一个头文件myclient.h.一个简单的Makefile 成立这个程序的代码,以下所示:
MySQL数据库技术(29)
? ? 假如是一个需求衔接到数学库的系统,则更改LIBS 的值,并将-lm 加到最后:LIBS = -L/usr/local/lib/mysql -lmysqlclient -lm
假如需求其他的库,如-lsocket 和- l n s l,则也要将这些库加到LIBS 中.利用M a k e f i l e,无论什么时刻改正何源文件,只简单地键入" m a k e"便可以重新成立程序代码.那比键入一句长的gcc 号令更简单,发生错误更少.

  以上是“MySQL数据库技术(29)[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Windows 搭配 IIS7 PHP MySQL 环境
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • mysql数据库插入速度和读取速度的调整记录
  • MySQL Order By索引优化办法
  • MySQL Order By用法分享
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • MySQL Order By Rand()效率解析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .