欢迎来到天天文库
浏览记录
ID:9488580
大小:56.00 KB
页数:6页
时间:2018-05-01
《linux 应用集成 mysql 数据库访问技巧--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Linux应用集成MySQL数据库访问技巧>> 本文描述了MySQL,一种利用第三方数据库开发电子贸易和其它复杂、动态网站的有效工具。MySQL是一种快速、多线程和全功能的SQL服务器。除了描述MySQL系统的基本体系结构以外,本文还提供了以Tcl和C++编写的简单示例,帮助您开发支持数据库的ySQL数据库 通过使用脚本语言和编译型系统语言(例如C),将数据库集成到Linux应用就可能相当容易。可免费获得的MySQL(在GNUPublicLicense下发行)数据库提供了一系列复杂的SQL功能,并易于集成到应用中。MySQL是快速、多线程的,并支持ANSI和
2、ODBCSQL标准。加上第三方软件,MySQL就支持用于事务处理应用的事务安全的表。 注:什么是事务处理? 事务是需要以原子方式执行的对数据库所做的一系列更改。它们要么必须全部执行,要么一个都不执行。例如,在ySQL服务器控制着一系列数据库,它们都可以通过服务器以类似方式来访问。每个数据库实际上都是一组任意数量的表,概念与其它SQL数据库的用户类似。每个表都由带类型的数据列组成。数据可以是整数、实数值、字符串或其它类型,包括原始二进制流。表中的每一行都是存储在数据库中的一个记录。 MySQL被设计和构造成客户机/服务器。服务器mysqld可以在能从因特网访
3、问到的任何机器上运行(最好与ySQL客户机使用请求来与MySQL服务器联系,修改或查询服务器所拥有的数据库。在支持数据库的ySQLCAPI,所以要将MySQL支持添加到任何现有的脚本语言或工具应该很容易。绝大部分脚本语言已经完成了这一步。 MySQLAPI MySQLAPI可用于各种语言,包括几乎所有编写网站后端所实际使用的语言。使用这些API,我们可以构建由ySQL客户机。 API(用于数据库访问)以基于连接的模式工作。客户机必须做的第一件事是打开与MySQL服务器的连接。这包括适当地使用服务器认识的用户名和口令来对连接进行身份认证。建立了连接后,服务器
4、选择要使用的特定数据库。确定了初始化后,客户机应用程序(就我们来说是服务器方CGI脚本)就能自由地与数据库以两种方式中的一种进行交互:可以运行常规SQL命令,包括添加和删除表,以及向它们添加记录;也可以对返回结果的数据库运行查询。查询生成一组与查询匹配的记录,然后,客户机可以逐一访问记录,直到查看完所有记录,或者客户机取消暂挂的记录检索。一旦脚本完成了对数据库的操作后,与服务器的连接就被关闭。 要构建集成数据库访问的网站,需要编写CGI脚本来根据数据库状态生成动态结果。L输出到它们的标准输出流中。L后将它发送回客户机,如同请求是对静态HTML页面进行的那样。在
5、生成HTML的过程中,脚本可以修改数据库,也可以查询并将结果合并到它们的输出中。 作为简单解释上述过程的一个示例,下面的代码(以C和Tcl编写)查询一个包含某公司供销售的产品清单的数据库。这绝没有使用两种语言MySQLAPI的所有特性,但提供了快速、简易扩展的示例,可以对数据库内容执行任何SQL命令。在该例中,脚本显示了低于特定价格的所有产品。在实践中,用户可能在L表单值的细节,因为它与不支持数据库的CGI脚本中执行的情况没有什么差别。为清晰起见,我们假设事先设置了特定一些参数(例如要查询的价格)。 以下代码是使用免费获得的TclGenericDatabas
6、eInterface以Tcl实现的。这样一种接口的好处在于Tcl是解释型的,可以对代码进行迅速开发和快速修改。 Tcl示例 #Thiscodeprintsoutallproductsinthedatabase #thatarebeloedtohavebeendetermined #beforehand,andstoredinthevariabletargetPrice) #TheoutputisinHTMLtableformat,appropriateforCGIoutput #loadtheSQLsharedobjectlibrary.theTcl
7、interpretercouldalso #havebeenpiledakingthislineunnecessary load/home/aroetter/tcl-sql/sql.so #theseareysqluser setDBPASSE#gettestdatabase #runaqueryusingthespecifiedsqlcode sqlquery$handleselect*from$TBLNAMEltableheaderputs putsProductIdDescriptionPrice($) #outputtablerothes
8、qlquery pty
此文档下载收益归作者所有