php与php MySQL 之间的关系


Posted in PHP onJuly 17, 2009

本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。
简介
PHP 是能让你生成动态网页的工具之一。PHP 代表:超文本预处理器(PHP:Hypertext Preprocessor)。PHP 是完全免费的,不用花钱,你可以从PHP 官方站点(http://www.php.net)自由下载。PHP 遵守GNU 公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP 在大多数Unix 平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC 机器或Unix机器上安装PHP 的资料可以在PHP 官方站点上找到,也可以查阅网页陶吧的“PHP 安装全攻备”专题文章。安装过程很简单。
如果你的机器解决了2000问题,那么PHP 也一样没有千年虫问题!
历史
三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
PHP 虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl 速度想媲美的被称作Zend 的新引擎,而PHP4 就可以充分利用这个引擎。现在,PHP4 正式版已经发布,大家可以到php 的官方站点上去下载。Andy Gutmans 和Zeev Suraki 是Zend 的主要作者。可以去Zend 站点(http://www.zend.com)了解更多。
PHP 的应用在个人性质的web工程中增长显著。根据Netcraft在1999 年10月的报告,有931122个域和321128 个IP 地址利用PHP 技术。
PHP 的先进之处
应用PHP 有许多好处。当然已知的不利之处在于PHP 由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4 之前)。但是PHP 的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com 这样的极受欢迎的站点,你不会感觉出PHP 的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP 有那些优点:
学习过程
我个人更喜欢PHP 的非常简单的学习过程。与Java和Perl 不同,你不必把头埋进100 多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP 编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。
PHP 的语法类似于C,Perl,ASP 或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP 太简单了。相反的,如果你对PHP 了解较多,那么你对于其他几种语言的学习都很简单了。
你只需要30分钟就可以将PHP 的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB 站点。由于PHP 代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP 使得你的站点更加具有动态特性。
数据库连接
PHP 可以编译成具有与许多数据库相连接的函数。PHP 与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
可扩展性
就像前面说的那样,PHP 已经进入了一个高速发展的时期。对于一个非程序员来说为PHP 扩展附加功能可能会比较难,但是对于一个PHP 程序员来说并不困难。
面向对象编程
PHP 提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。
可伸缩性
传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP 就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP 可以具有更高的可伸缩性。
更多特点
PHP 的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP 连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP 安装版本需要哪些功能。引用Nissan 的Xterra 的话来说就是PHP 可以做到你想让它做到的一切而且无所不能!

MySQL简介
MySQL是一个广受Linux社区人们喜爱的半商业的数据库。 MySQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台。
许可费用
MySQL的普及很大程度上源于它的宽松,除了略显不寻常的许可费用。MySQL的价格随平台和安装方式变化。MySQL的Windows版本(NT和9X)在任何情况下都不免费,而任何Unix变种(包括Linux)的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案庄则必须付许可费。
价格
平台安装方式价格
Windows NT,9X 任何200美元
Unix或Linux 自行安装免费
Unix或Linux 第三方安装200美元
需要一个应用组件200美元
可以得到多种支持合同,内容太多不再罗列,最新报价可咨询MySQL站点。
3、安装
可以在MySQL站点上获得大多数主要的软件包格式(RPM、DBE、TGZ),客户端库和各种语言“包装”(Wrapper)可以分开的RPM格式获得。RPM格式的安装没有多大麻烦,并且无需初始配置。在rc3.d(以RedHat RPM为例)生成一个初始脚本,故MySQL守护进程在多用户模式下重启时被启动运行。MySQL的守护进程(mysqld)消耗很少的内存(在运行RedHat 5.1的奔腾133上,每个守护进程使用500K内存和另外4M共享内存的开销)并在只有在执行真正的查询时才装载到处理器上,这意味着对小型数据库来说,MySQL可以相当轻松地使用而不会对其他系统功能有太大的影响。
数据类型
字段支持大量数据类型是件好事。通常的整数、浮点数、字符串和数字均以多种长度表示,并支持变长的BLOB(Binary Large OBject)类型。对整数字段由自动增量选项,日期时间字段也能很好的表示。
MySQL与大多数其他数据库系统不同的是提供两个相对不常用的字段类型:ENUM和SET。ENUM是一个枚举类型,非常类适于Pascal语言的枚举类型,它允许程序员看到类似于'red、'green'、'blue'的字段值,而MySQL只将这些值存储为一个字节。SET也是从Pascal借用的,它也是一个枚举类型,但一个单独字段一次可存储多个值,这种存储多个枚举值的能力也许不会给你一些印象(并可能威胁第三范式定义),但正确使用SET和CONTAINS关键字可以省去很多表连接,能获得很好的性能提高。
5、SQL兼容性
MySQL包含一些与SQL标准不同的转变,他们的大多数被设计成是对SQL语言脚本语言的不足的一种补偿。然而,另一些扩展确实使 MySQL与众不同,例如,LINK子句搜索是自动地忽略大小写的。MySQL 也允许用户自定义的SQL函数,换句话说,一个程序员可以编写一个函数然后集成到MySQL中,并且其表现的与任何基本函数如SUM()或AVG ()没有什么不同。函数必须被编译道一个共享库文件中(.so文件),然后用一个LOAD FUNCTION命令装载。
它也缺乏一些常用的SQL功能,没有子选择(在查询中的查询)。视图(View)也没了。当然大多数子查询可以用简单的连接(join)子句重写,但有时用两个嵌套的查询思考问题比一个大连接容易。同样,视图仅仅为程序员隐蔽where子句,但这正是程序员们期望的另一种便利。
存储过程和触发器
MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。多语句SQL命令必须通过客户方代码来协调,这种情形是借助于相当健全的查询语言和赋予客户端锁定和解锁表的能力,这样才允许的多语句运行。
7、参考完整性(Referential Integrity-RI)
MySQL的主要的缺陷之一是缺乏标准的RI机制;然而,MySQL的创造者也不是对其用户的愿望置若罔闻,并且提供了一些解决办法。其中之一是支持唯一索引。Rule限制的缺乏(在给钉字段域上的一种固定的范围限制)通过大量的数据类型来补偿。不简单地提供检查约束(一个字段相对于同一行的另一个字段的之值的限制)、外部关键字和经常与RI相关的“级联删除”功能。有趣的是,当不支持这些功能时,SQL分析器容忍这些语句的句法。这样做目的是易于移植数据库到MySQL中。这是一个很好的尝试,并且它确实未来支持该功能留下方便之门;然而,那些没有仔细阅读文档的的人可能误以为这些功能实际上是存在的。
7、安全性
自始至终我对MySQL最大的抱怨是其安全系统,它唯一的缺点是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。通常的SQL GRANT/REVOKE 语句到最近的版本才被支持,但是至少他们现在有了。 MySQL的编写者广泛地记载了其特定的安全性系统,但是它确实需要一条可能是别无它法的学习过程。

apache+php+mysql是最好的搭配,也是搭配企业网络的最好的搭配、

如果学php,那么你可以在网络中找寻到很多的教程的,其实学任何的程序最好的就是写,不停的写不停的看。

作网站当然最好的是dreamweaver,它可以写很多的代码的,也可以设计!

PHP 相关文章推荐
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
php 3行代码的分页算法(求起始页和结束页)
Oct 21 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
PHP实现过滤各种HTML标签
May 17 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
php+iframe 实现上传文件功能示例
Mar 04 PHP
PHP获取当前时间不准确问题解决方案
Aug 14 PHP
php 图片上传类代码
Jul 17 #PHP
PHP源码之 ext/mysql扩展部分
Jul 17 #PHP
php 小乘法表实现代码
Jul 16 #PHP
php at(@)符号的用法简介
Jul 11 #PHP
php str_pad 函数用法简介
Jul 11 #PHP
php strlen mb_strlen计算中英文混排字符串长度
Jul 10 #PHP
UTF8编码内的繁简转换的PHP类
Jul 09 #PHP
You might like
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
JS查看对象功能代码
2008/04/25 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
NodeJS制作爬虫全过程
2014/12/22 NodeJs
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
Python读取word文本操作详解
2018/01/22 Python
浅析python 字典嵌套
2020/09/29 Python
python入门教程之基本算术运算符
2020/11/13 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
教师推荐信范文
2013/11/24 职场文书
党员批评与自我批评
2014/02/12 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
Python 匹配文本并在其上一行追加文本
2022/05/11 Python