WEB开发网      婵犵數濮烽弫鍛婄箾閳ь剚绻涙担鍐叉搐绾剧懓鈹戦悩瀹犲闁汇倗鍋撻妵鍕箛閸洘顎嶉梺绋款儑閸犳劙濡甸崟顖氬唨闁靛ě浣插亾閹烘鈷掗柛鏇ㄥ亜椤忣參鏌″畝瀣暠閾伙絽銆掑鐓庣仭缁楁垿姊绘担绛嬪殭婵﹫绠撻、姘愁樄婵犫偓娴g硶鏀介柣妯款嚋瀹搞儱螖閻樺弶鍟炵紒鍌氱Ч瀹曟粏顦寸痪鎯с偢瀵爼宕煎☉妯侯瀳缂備焦顨嗗畝鎼佸蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮⒑鐠団€虫灀闁哄懐濮撮悾鐤亹閹烘繃鏅濋梺闈涚墕濡瑩顢欒箛鏃傜瘈闁汇垽娼ф禒锕傛煕閵娿儳鍩f鐐村姍楠炴﹢顢欓懖鈺嬬幢闂備浇顫夊畷妯肩矓椤旇¥浜归柟鐑樻尭娴滃綊姊虹紒妯虹仸闁挎洍鏅涜灋闁告洦鍨遍埛鎴︽煙閼测晛浠滃┑鈥炽偢閹鈽夐幒鎾寸彇缂備緡鍠栭鍛搭敇閸忕厧绶炴俊顖滅帛濞呭洭姊绘担鐟邦嚋缂佽鍊垮缁樼節閸ャ劍娅囬梺绋挎湰缁嬫捇宕㈤悽鍛婄厽閹兼番鍨婚埊鏇㈡煥濮樿埖鐓熼煫鍥ュ劤缁嬭崵绱掔紒妯肩畺缂佺粯绻堝畷姗€濡歌缁辨繈姊绘担绛嬪殐闁搞劋鍗冲畷顖炲级閹寸姵娈鹃梺缁樻⒒閳峰牓寮崒鐐寸厱闁抽敮鍋撻柡鍛懅濡叉劕螣鐞涒剝鏂€闂佺粯鍔曞Ο濠囧吹閻斿皝鏀芥い鏃囨閸斻倝鎽堕悙鐑樼厱闁哄洢鍔屾晶顖炴煕濞嗗繒绠婚柡灞界Ч瀹曨偊宕熼鈧▍锝囩磽娴f彃浜炬繝銏f硾椤戝洨绮绘ィ鍐╃厵閻庢稒岣跨粻姗€鏌ㄥ☉妯夹fい銊e劦閹瑩顢旈崟顓濈礄闂備浇顕栭崰鏍礊婵犲倻鏆﹂柟顖炲亰濡茶鈹戦埄鍐ㄧ祷妞ゎ厾鍏樺璇测槈閵忕姈鈺呮煏婢跺牆鍔撮柛鏂款槺缁辨挻鎷呯粙搴撳亾閸濄儳鐭撶憸鐗堝笒閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓 ---闂傚倸鍊搁崐鐑芥倿閿旈敮鍋撶粭娑樺幘濞差亜鐓涢柛娑卞幘椤斿棝姊虹捄銊ユ珢闁瑰嚖鎷�
开发学院数据库MySQL MySQL数据库技术(29) 阅读

MySQL数据库技术(29)

 2007-11-11 15:21:00 来源:WEB开发网 闂傚倸鍊搁崐椋庢濮橆兗缂氱憸宥堢亱闂佸湱铏庨崰鏍不椤栫偞鐓ラ柣鏇炲€圭€氾拷闂傚倸鍊搁崐椋庣矆娓氣偓楠炲鏁撻悩鎻掔€梺姹囧灩閻忔艾鐣烽弻銉︾厵闁规鍠栭。濂告煕鎼达紕校闁靛洤瀚伴獮鎺楀箣濠靛啫浜鹃柣銏⑶圭壕濠氭煙閻愵剚鐏辨俊鎻掔墛缁绘盯宕卞Δ鍐冣剝绻涘畝濠佺敖缂佽鲸鎹囧畷鎺戭潩閹典焦鐎搁梻浣烘嚀閸ゆ牠骞忛敓锟�婵犵數濮烽弫鍛婃叏椤撱垹绠柛鎰靛枛瀹告繃銇勯幘瀵哥畼闁硅娲熷缁樼瑹閳ь剙岣胯鐓ら柕鍫濇偪濞差亜惟闁宠桨鑳堕崝锕€顪冮妶鍡楃瑐闁煎啿鐖奸崺濠囧即閵忥紕鍘梺鎼炲劗閺呮稒绂掕缁辨帗娼忛埡浣锋闂佽桨鐒﹂幑鍥极閹剧粯鏅搁柨鐕傛嫹闂傚倸鍊搁崐椋庢濮橆兗缂氱憸宥堢亱闂佸湱铏庨崰鏍不椤栫偞鐓ラ柣鏇炲€圭€氾拷  闂傚倸鍊搁崐鐑芥嚄閼哥數浠氱紓鍌欒兌缁垶銆冮崨鏉戠厺鐎广儱顦崡鎶芥煏韫囨洖校闁诲寒鍓熷铏圭磼濡搫顫嶅銈嗗姉閸樠囧煡婢跺á鐔兼煥鐎n兘鍋撴繝姘拺鐟滅増甯掓禍浼存煕閹惧鈽夐柍缁樻煥椤繈鎳滅喊妯诲闂備礁鎲$粙鎴︺偑閺夋垟鏋旈柡鍐e亾缂佺粯绋撴禒锕傚磼濮橆剦鐎抽梻浣哥-缁垶骞戦崶顒傚祦閻庯綆浜栭弨浠嬫煙闁箑澧い鏂垮€规穱濠囨倷椤忓嫧鍋撻弽褜娼栧┑鐘宠壘閸屻劎鎲歌箛娑樼疅闁圭虎鍠楅弲鎼佹煥閻曞倹瀚�
核心提示: MySQL(和PHP搭配之最佳组合)提供用C编程语言编写的客户机库,可以用它编写访问M y S Q L的客户机程序,MySQL数据库技术(29),这个库定义了应用程序编程接口,包括下面的实用程序: ■ 建立和终止与服务器会话的连接管理例程,只简单地键入“ m a k e”就可以重新建立程序代码,那比键入一句长

  MySQL(和PHP搭配之最佳组合)提供用C编程语言编写的客户机库,可以用它编写访问M y S Q L的客户机程序。这个库定义了应用程序编程接口,包括下面的实用程序:
    ■ 建立和终止与服务器会话的连接管理例程。
    ■ 构造查询的例程,将例程发送到服务器,并处理结果。
    ■ 当其他C API调用失败时,确定错误准确原因的状态和错误报告函数。
    本章介绍如何用客户机库编写自己的程序。我们要记住的一些要点是,自己的程序与MySQL(和PHP搭配之最佳组合) 分发包中已有的客户机程序的一致性,代码的模块性和可重用性。本章假设您知道用C编程的一些知识,但并不一定是专家。本章从简单到复杂粗略地开发了一系列的客户机程序。这个过程是第一部分开发了一个程序框架,该框架除了与服务器连接和断开以外不能作任何事情。这样做的原因是,尽管MySQL(和PHP搭配之最佳组合) 客户机程序是为不同的目的而编写的,但它们都有一个共同点:即创建与服务器的连接。
    我们将用以下步骤来建立这个程序框架:
    1. 编写一些连接和断开的简要代码(客户机程序1)。
    2. 增加一些错误检查(客户机程序2)。
    3. 使连接代码模块化和可重用化(客户机程序3)。
    4. 增加获取运行时连接参数的能力(主机,用户,口令)(客户机程序4)。
    这个框架一般是合理的,可以使用它作为编写任意数量的客户机程序的基础。开发它以后,我们将暂不考虑如何处理各种问题。首先,我们将讨论如何处理特定的硬编码的S Q L语句,然后再开发用于处理任意语句的代码。在这之后,将查询处理的代码增加到客户机程序框架中,开发另一个程序(客户机程序5),它类似于MySQL(和PHP搭配之最佳组合) 客户机程序。我们也将考虑(并解决)一些通用的问题,如“如何获取有关表的结构信息?”和“如何在数据库中插入图像?”只有在需要时,本章才讨论客户机库的函数和数据类型。要想了解所有函数和类型的列表,请参阅附录F“C API 参考”。可以用这个附录作为使用客户机库任何部分的进一步的背景信息的参考。
    样例程序可以由联机下载得到,可以直接使用,而不必再键入它们。有关的指导,请参阅附录A“获得和安装软件”。
    在哪里寻找样例
    MySQL(和PHP搭配之最佳组合) 邮件清单的一个共同问题就是“我在哪里可以找到一些用C 写的客户机样例?”。当然,这个答案是“就在本书里!”。但是,许多人好像并没有考虑的是MySQL(和PHP搭配之最佳组合)分发包中包括了若干客户机程序(例如MySQL(和PHP搭配之最佳组合)、MySQL(和PHP搭配之最佳组合)admin 和MySQL(和PHP搭配之最佳组合)dump),这些大部分都是用C编写的。因为这个分发包可以很容易地以源程序形式使用,所以MySQL(和PHP搭配之最佳组合) 提供非常少的样例客户机代码。因此,如果您还没有这样做,找个时间找到源程序分发包,在客户机目录中查看这些程序。MySQL(和PHP搭配之最佳组合) 客户机程序为共享软件,从那里可以为自己的程序自由地借用代码。
    在本章提供的样例和MySQL(和PHP搭配之最佳组合) 分发包中包括的客户机程序之间,可以找到与自己编写程序时想做的事情相类似的代码。如果是这样,可以通过拷贝和修改已有的程序来重新使用代码。应该阅读本章,了解客户机库是如何工作的。然而,请记住,并不总是需要自己编写琐碎的每件事情(您将注意到,在本章编写程序的讨论中,代码的可重用性是目的之一)。通过使用其他人编好的程序,可以避免许多工作,那是最好的。
    6.1 建立客户机程序的一般过程
    本节介绍使用M y S Q L客户机库编译和连接程序所包括的步骤。不同的系统建立客户机程序的命令也有所不同,可能需要稍微修改一下这里介绍的命令。然而,这里的说明是通用的,应该能够将它用于几乎您编写的任何客户机程序中。
    6.1.1 基本的系统需求
    当您用C 编写MySQL(和PHP搭配之最佳组合) 客户程序时,显然将需要一个C 编译程序。这里说明的样例使用gcc。除了自己的源文件以外,还将需要下列程序:
    ■ MySQL(和PHP搭配之最佳组合) 头文件。
    ■ MySQL(和PHP搭配之最佳组合) 客户机库。
    MySQL(和PHP搭配之最佳组合) 头文件和客户机库组成客户机编程的支持程序。它们可能已经安装到您的系统上。如果没有,应获取它们。如果MySQL(和PHP搭配之最佳组合) 从源程序分发包或二进制分发包中安装,则客户机可编程的支持程序应该已经作为该处理的一部分安装了。如果MySQL(和PHP搭配之最佳组合) 是从RPM 文件中安装的,
则除非安装了开发程序R P M,否则就没有这种支持。如果需要安装MySQL(和PHP搭配之最佳组合) 头文件和库,请参阅附录A。
    6.1.2 编译和连接客户机程序
    要想编译和连接客户机程序,就必须指定MySQL(和PHP搭配之最佳组合) 头文件和客户机库的位置,因为它们通常不安装在编译程序和连接程序缺省搜索的位置。对于下面的样例,假定头文件和客户机库的位置为/usr/local/include/MySQL(和PHP搭配之最佳组合) 和/ usr / local / lib / MySQL(和PHP搭配之最佳组合)。要想告知编译程序如何寻找MySQL(和PHP搭配之最佳组合) 头文件,则当将源文件编译为目标文件时,传送给它一个-I/usr/local/include/MySQL(和PHP搭配之最佳组合) 参数。例如,可以使用这样的命令:
MySQL<font class=reblank  style=(和PHP搭配之最佳组合)数据库技术(29)(图一)" />
    要想告知连接程序在哪,可以找到客户机库和它的名称,当连接目标文件产生一个可执行的二进制文件时,传送-L/usr/local/lib/MySQL(和PHP搭配之最佳组合) 和-lMySQL(和PHP搭配之最佳组合)client 参数,如下所示:
MySQL<font class=reblank  style=(和PHP搭配之最佳组合)数据库技术(29)(图二)" />
    如果客户机程序包括多个文件,则所有目标文件的名称都要列在连接命令上。如果连接步骤导致不能找到必需的floor() 函数的错误,则通过在命令行的后面增加- l m,连接到数学库:
MySQL<font class=reblank  style=(和PHP搭配之最佳组合)数据库技术(29)(图三)" />
    可能还需要增加其他的库。例如,在Solaris 上可能需要-lsocket -lnsl。
    如果没有使用make 建立程序,则建议您了解一下如何进行,以便不必手工地键入许多建立程序的命令。假设有一个客户机程序myclient,包括两个源文件main.c 和aux.c,及一个头文件myclient.h。一个简单的Makefile 建立这个程序的代码,如下所示:
MySQL<font class=reblank  style=(和PHP搭配之最佳组合)数据库技术(29)(图四)" />
    如果是一个需要连接到数学库的系统,则更改LIBS 的值,并将-lm 加到最后:LIBS = -L/usr/local/lib/MySQL(和PHP搭配之最佳组合) -lMySQL(和PHP搭配之最佳组合)client -lm
如果需要其他的库,如-lsocket 和- l n s l,则也要将这些库加到LIBS 中。使用M a k e f i l e,无论何时修改何源文件,只简单地键入“ m a k e”就可以重新建立程序代码。那比键入一句长的gcc 命令更容易,发生错误更少。

Tags:MySQL 数据库 技术

编辑录入:coldstar [复制链接] [打 印]
赞助商链接