"PHP与MySQL基础教程(第2版)"的书摘……
静态Web页面的时代已经过去了.多年来,Web只不过是用于存放若干简单的链接在一起的HTML页面.但是,今天的用户期待更吸引入的页面——它们会频繁更新,并且提供个性化的体验.同时,Web站点管理员希望站点更容易更新和维护.由于如此种种原因,只用静态HTML文件构建站点已不再受欢迎.Web现在用于存放的是动态的.往往由数据库驱动的Web应用程序..
作者以多年的Web开发经验以及之前编写有关技术图书的经验,完成了本书.本书重点在于以最高效的方式介绍最重要的知识.它将介绍如何开始开发动态Web站点,并给出了大量示例代码来帮助读者起步.读者所要做的就是满怀热忱来学习.
好吧,我们这就开始……
0.1什么是动态Web站点
动态Web站点非常灵活.强大,将其描述为应用程序而不仅仅是站点会更准确.动态Web站点:
□能够对不同的参数做出响应(例如,一天中的某个时间,或者访问者的Web浏览器版本):
□具有“记忆”,允许用户执行注册.登录.电子商务以及类似的过程,
□通常包含HTML表单,使得人们可以执行查找.提供反馈等,
□通常具有允许管理员管理站点内容的界面,
□更易于维护.升级和构建.
有许多技术可用于创建动态Web站点.最常用的技术是ASP.NET(ActiveServerPages,Microsoft的产品).JSP(JavaServerPages).ColdFusion和PHP.动态Web站点不一定依赖于数据库,但是,越来越多的动态Web站点正在这样做,特别是由于像MySQL这样的数据库应用程序几乎可以免费使用.
0.1.1什么是PHP
PHP最初代表“个人主页”(PemonalHomePage),由RasmusLerdorf于1994年创建,用于跟踪访问者对其在线履历的访问.随着其实用性和功能的发展(并且随着它开始用于更专业的环境中),它变成了“PHP:HypertextPreprocessor(PHP超文本预处理器)”.
根据www.php.net(图0-1)上官方站点的说法,PHP是“一种HTML中嵌入的脚本语言”.这是一个复杂但具有描述性的定义,其含义将在后面解释.
称PHP是“HTML中嵌入的”意味着PHP可以散布在HTML内,这使得动态Web站点的开发要容易得多.此外,与编程语言相比,PHP是一种脚本语言:PHP用来编写Web脚本,它不是独立的应用程序.脚本只在某个事件——例如,用户提交一个表单或者输入一个URL地址发生之后才运行.
我应该在这个定义中添加一些内容,指出PHP是一种服务器端.跨平台的技术,这两个描述都是重要的.服务器端是指PHP做的所有事情都发生在服务器上(与发生在客户端上相对,客户端是Web站点浏览者所用的计算机).它的跨平台性意味着PHP可以运行在大多数操作系统上,包括Windows.UNIX(及其许多变体)和Macintosh.更重要的是,对于在一台服务器上编写的PHP脚本,通常不用修改或者只做很少的修改即可工作在另一台服务器上.
在编写本书时,PHP已发展到了版本5(从技术上讲,是5.0.4),但其版本4.3仍然在使用并且在服务器上很常见.本书将使用PHP5(见框注),但是,如果你用的版本稍微旧一点儿,也不会有什么问题.显然,在服务器上最好是使用最新的PHP版本,但是,有时候你控制不了这些事情,本书将尽最大可能采用无版本差别的代码.在使用最新添加的函数或变量的地方,本书会给出注释来指出替代的解决方案.
0.1.2为什么使用PHP
简单地讲,在开发动态Web站点时,与其他可选技术相比,PHP更好.更快并且更易于学习.PHP有优秀的性能,与几乎每一种可用数据库的紧密集成.稳定性.可移植性,以及由于其可扩展性而得到的几乎无限的特性集.所有这些都是免费的(PHP是开源技术),并且非常易于学习.在我接触的语言中,PHP是最佳地结合了易用性和高级能力的语言之—,初级程序员使用它很容易上手,更高级的程序员可以用它做他们需要的一切事情.
最后,一个事实可以证明这——点:PHP门从推出以来,其用户数量呈指数级增长(图0-2),并且超过ASP成为今天使用的最流行的脚本语言.它是Apache(最常用的Web服务器)必需的模块.到本书出版时,PHP运行在2000多万个域中.
0.1.3PHP如何工作
如前所述,PHP是一种服务器端语言.这意味着用PHP编写的代码将驻留在称为服务器的主机上.服务器发送Web页面给发出请求的访问者(你.客户端.通过Web浏览器).
当访问者到达用PHP编写的Web站点时,服务器读取PHP代码,然后依据其脚本指令处理它.在图0-3的示例中,PHP代码告诉服务器发送合适的数据(HTML代码)给Web浏览器,Web浏览器再把接收到的代码处理成标准HTML页面.
这不同于静态HTML站点.在静态HTML站点中,当发出请求时,服务器只是把HTML数据发送到Web浏览器,而不会由服务器端进行解释(图0-4).对于最终用户和Web浏览器来说,home.html和home.php两者在外观上并没有明显的区别,但是,其页面内容的创建方式却有着天壤之别.
0.1.4什么是MySQL..
MySQL(www.mysql.com,图0-5)是最流行.最佳的开源数据库(可能有些争议).事实上,特别是在版本4和版本5添加了新的特性之后,MySQL成为那些昂贵的重量级数据库(如Oracle和Microsoft的SQLServer)有力的竞争产品.像PHP一样,MySQL提供了优秀的性能.可移植性和可靠性,并易于学习,并且几乎是免费的.
MySQL是关系数据库管理系统(DBMS),因此MySQL是一种RDBMS.简单地讲,数据库是相关数据的集合,这些数据可以是文本.数字或二进制文件,它们由DBMS进行存储和组织.
数据库有多种类型,从平面文件到关系数据库和面向对象数据库.关系数据库的特征是使用多张表存储信息.在20世纪70年代早期(当时已经出现了数据库这个概念),数据库看上去更像是具有——张单独的存储所有信息的巨型表的电子表格.而关系数据库在设计和编程阶段纳入了更多的思想,它们改进了可靠性和数据完整性,足以补偿所需的额外工作.此外,关系数据库的查找能力更强,并且允许并发操作.
通过把数据库纳入Web应用程序中,可以从MySQL提取一些PHP生成的数据.这进一步把站点的内容从静态(硬编码)基础转移到灵活基础上,灵活性是动态Web站点的关键特性.
与PHP一样,MySQL也是一种开源应用程序,这意味着它可以免费使用,甚至可以修改(源代码可下载得到).有时应该为MySQL许可证付费,特别是在销售或结合MySQL产品来赚钱时则更应如此.查看MySQL的许可政策,可以获取关于这方面的详细信息.
MySQL软件包含多个部分,包括MySQL服务器(mysqld,它运行和管理数据库).MySQL客户(mysql,它提供了一个到达服务器的接口),以及出于维护等目的而提供的大量实用程序.PHP始终具有对MySQL的良好支持,在该语言最新的版本中,这——点表现得更为突出.
MySQL以处理大型数据库而著称,数据库可以包含60000张表,以及超过50亿行的记录.在某些操作系统上,MySQL可以与容量高达800万TB的表协同工作,在其他操作系统上,一般可以良好地处理4GB的数据.
在编写本书时,MySQL已经推出了版本4.1.12,并且版本5正在开发中.因为不同的MySQL版本有不同的特性(参见框注),所以要清楚地知道你自己正在使用什么就非常重要了.本书使用的是MySQL4.1,在使用特定于某些版本的特性时,会在文字中加入注释.
0.2你需要什么
要理解本书的示例,你需要以下工具:
□Web服务器应用程序(例如,Apache.Xitami或IIS)
□PHP
□MySQL
□Web浏览器(Microsoft的InternetExplorer.Mozilla的Firefox.Apple的Safari等)
□文本编辑器.支持PHP的所见即所得应用程序(Macromedia的Dreamweaver就具有这种能力)或者IDE(集成开发环境)
□FTP应用程序(如果使用远程服务器)
利用PHP和MySQL开发动态Web站点的重大优点之一是,无论什么要求都可以免费得到满足,而不管使用的操作系统是什么!Apache.PHP和MySQL全都是免费的:大多数Web浏览器可以免费拥有(除了OmniWeb.Opera以及另外几种浏览器之外):许多优秀的文本编辑器可供免费使用.
附录A讨论了在Windows和MacOSX操作系统上的安装过程.如果有—台计算机,则只需下载两个产品,即可创建动态Web站点(在这种情况下,你的计算机同时代表图0-3和图0-6中的客户和服务器).与之相反,你可以以每月几美元的价钱购买Web主机托管服务,它会提供支持PHP和MySQL的已经在线的环境(到处都有免费的PHP和MySQL主机托管服务公司,但是它们通常离期望值相去甚远).
0.3关于本书
本书讲述了如何利用PHP和MySQL宋开发动态Web站点,涵盖了大多数开发人员可能需要的知识.书中使用逐步引导的方法并配以相应的图片来讨论.其重点依然放在现实且实用的示例上,避免了“这些事情你能够做到但是永远也不会去做”的情况.我自己作为一名Web开发人员,编写了我会使用的信息,并且避免了那些对手边的任务来说无关紧要的东西.
本书采用了线性结构.前3章介绍了PHP的基础知识(通过学习第2章,你就会开发你的第一个动态Web页面).第4章和第5章介绍了SQL(结构化查询语言(StructuredQueryLanguage),用于和所有数据库进行交互)和MySQL.这两章介绍了SQL和数据库设计的基础知识,并且特别介绍了MySQL应用程序.第6章介绍了调试和错误管理,第7章专门介绍了如何同时使用PHP和MySQL,这非常容易做到.
第8~10章讲述了更多的应用技术,可以充实你的知识.第11章将说明一些扩展的主题,这些主题值得考虑,但并不是所有应用程序都需要它们.最后,本书包含了专门介绍示例的3章内容,其中开发了不同Web应用程序的核心以及一些指导说明.附录讨论了安装过程,并且提供了关于参考资料和资源的更多信息.
0.3.1本书读者对象
本书读者面很广,从初学者到中级用户都可以学习本书.考虑将来的兼容性问题,本书使用了XHTML,因此读者必须具有使用XHTML或其前身HTML的丰富经验.尽管本书涵盖了很多方面,但它没有正式讲述HTML或Web页面设计.
其次,本书希望读者具有以下素质之—:
□学习的动力和能力,而刁,要被人牵着鼻子走,
□熟悉另一种编程语言(甚至具有丰富的JavaScript技术也是合适的),
□对PHP有一定的了解.
本书涵盖了PHP和MySQL方方面面的内容,讲述了开发现实的Web站点需要知道的一切知识,不过,要特别指出的是,开头几章以较快的速度介绍了PHP.出于这种原闲,我建议在开始学习新内容时,最好具备一些编程经验或者好奇和独立的精神.如果你发现有些内容讲得人快,那么从学习我的PHPfortheWorldWideWeb:VisualQuickStartGuide的最新版本开始起步可能更好,其中的行文速度更适中.
学习本书不需要任何数据库经验,因为本书是从最基本的级别开始讨论SQL和MySQL的.
0.3.2这一版本的新增内容
本书的第一版非常受欢迎,我收到了许多关寸:本书的肯定的反馈意见(感谢!).在编写此新版本时,我希望不仅仅是更新PHP和MySQL的最新版本的内容,尽管这是全书的首要考虑事项.你将会发现其他新特性:
□扩展的和更新的安装和配置指导,
□许多新的高级MySQL和SQL示例,
□用一整章的篇幅专门介绍错误管理和调试,
□用新的示例演示读者频繁要求了解的技术,
□更广泛的扩展主题.
对于也拥有第一版的读者(感谢!),我相信这些新特性也会使这—版本成为你的案头必备.
0.3.3与我的其他图书的比较
这是我的第四本关于PHP和/或MySQL主题的图书,下面按顺序列出之前出版的另外3本书:
□PHPfortheWorldWideWeb:VisualQuickStartGuide
□PHPAdvancedfortheWorldWideWeb:VisualQuickProGuide
□MySQL:VisualQuickStartGuide
我希望这份履历暗示了我具有某种资格来编写本书,但是,作为读者的你如何决定哪本书适合你自己