PHP基础教程第三章
PHP标准基础教程

1.3 PHP的学习和工作原理
• 通过上面的介绍,读者对PHP有了初步的认识。本节将为读 者介绍PHP是如何工作的,以及如何才能学好PHP。笔者对 PHP如何工作的总结如下: • 产生对PHP脚本的HTTP请求。 • Apache将请求传递给PHP引擎。 • PHP引擎分析扩展名为.php的脚本,并用特定的标记来启用 PHP模式。 • PHP引擎在服务器上执行脚本。 • 利用PHP扩展或PEAR数据库抽象库来进行数据库交互或与 LDAP源代码、cron作业等进行交互。 • 处理结果。 • 将数据转换成HTML代码。 • 将响应发送至客户端浏览器进行显示。
1.4.2 PHP与ASP
•
JSP的比较
PHP是一种CGI语言,写CGI的方式是多种多样,PHP只是其中的一种。传统的方法有C、 Visual Basic,编写时,虽然效率高,但是比较烦琐,不容易维护,所以现在应用的 范围并不广。目前比较流行的除PHP外,还有与其类似的微软的ASP、SUN公司的JSP。 JSP与Java能紧密结合,目前很多的Java程序能非常容易地改编成JSP程序,它也有着 平台无关性,相信会有越来越多的人尝试用JSP编写动态网页。在这里笔者并无意断 言孰优孰劣,只是客观展示它们的性能特点。对PHP、ASP、JSP 3种语言的比较如表 1.1所示。
1.2 PHP的地位及优势
• 上面介绍了PHP能做什么,及PHP是如何发展的。 那为什么PHP能有这么广泛的用处及这么快的发展 速度呢?正是因为它的优势。现在将为大家介绍 PHP在互联网中的地位及它的优势。
1.2.1 PHP所具有的优点及其在互联网中的地位
• • • • • • PHP之所以能有这样的发展,显然是跟它的一些优点是分不开的,下面就来看看PHP有哪些优点。 简单性:简单就是比较好学,容易入手。PHP借用了C、Perl、Shell、JavaScript等的一些好的语 法框架。对于初学者来说,很快就可以掌握。 速度快:PHP要比传统的解释执行方式的语言速度要快好几倍。 跨平台性:PHP可以在windows、Linux、UNIX系统下运行。在Windows下的PHP程序拿到Linux、UNIX 系统下,不需要对PHP代码进行修改,就可以使用。 强大的数据库支持:PHP有很多的可被支持的数据库,如图1.1所示。 PHP的开放源代码:开放源代码指的不单是PHP应用程序的源代码,而且还有PHP本身的源代码。也 就是说,可以在PHP的官方网上找到PHP源代码来进行编译和执行,以得到最终的运行程序,如果有 必要也可以做出修改。 基于服务器端:也就是说PHP是运行在Web服务器端。PHP程序可能很大,很复杂,但是它的运行速 度只和服务器的速度有关,发送到客户端只是程序运行的结果,对客户端的执行速度不会产生直接 的影响。 执行的效率高:和其他的CGI语言比较,PHP语言不但所占用的系统资源比较小,而且运行的速度比 较快。所以它的执行效率较高。
PHP基础教程_OK

图3.1 JavaScript对话框 图3.2 单击按钮后的运行效果
2021/8/6
11
3.2 数据类型
3.2.1 整型
整型变量的值是整数,表示范围是2 147 483 648~2 147 48
3 647。整型值可以用十进制数、八进制数或十六进制数的标
志符号指定,前面再加上可选符号(或+)。八进制数符号
3.1.2 PHP程序注释
● 单行注释。可以使用C++风格或shell脚本风格的注释,C
++风格是以“//”开始,所在行结束时结束;shell脚本风格
与C++类似,使用的符号是“#”。例如:
<?php
echo "Hello";
//这是C++风格的注释
echo "World!";
#这是shell脚本风格的注释
数组是一组由相同数据类型元素组成的一个有序映射。在P
HP中,映射是一种把values(值)映射到keys(键名)的类型。
数组通过array()函数定义,其值使用“key->value”的方式设置,
多个值通过逗号分隔。当然也可以不使用键名,默认是1,2,
3,…。例如:
<?php $ar1=array(1,2,3,4,5,6,7,8,9);
//直接给数组赋值 $ar2=array("animal "->"tiger", "color"->"red","numer"->"12"); ?>
//为数组指定键名和值
细说php3章php的基本语法

01
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
02
PHP是目前最流行的网站开发语言( B/S结构)。
03
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法 。
04
支持几乎所有流行的数据库以及操作系统
05
PHP是什么?
1.PHP在Web开发中的应用
PHP在Web中的功能:
1
文件后缀名为.php结尾,上传到Web服务器的文档根目录下,通过浏览器访问Web服务器管理下的PHP文件,就可以运行PHP文件。
2
这就是PHP脚本
起始符
4
结束符
5
我们用<?php来表示PHP标识符的起始,然后放入PHP语句并通过加上一个终止标识符?>来退出PHP模式。可以根据自己的需要在HTML文件中像这样开启或关闭PHP模式。大多数的嵌入式脚本语言都是这样嵌入到HTML中并和HTML一起使用,例如CSS、JavaScript、PHP、ASP以及JSP等。
在PHP中,变量的类型通常不是由程序员设定的,确切地说,是根据该变量使用的上下文在运行时(即变量的值)决定的。 使用函数var_dump( )查看表达式的值和类型。
<?php $bool=TRUE; //赋一个布尔值 $str=“foo”; //赋一个字符串 $int=12; //赋一个整型值 var_dump($bool); //输出:bool(true) var_dump($str); //输出:string(3) "foo" var_dump($int); //输出:int(12) ?>
一般来说,空白符(空格、Tab制表符、换行)在PHP中无关紧要。可以将一个语句展开成任意行,或者将语句紧缩在一行。
PHP程序设计第3章

E_PARSE
E_NOTICE
这个常量指解析语法有潜在问题处
这个常量为发生不寻常,但不一定是错误处
2
变量
主要内容
01 02 03 04 05
变量的概念 定义和使用变量 变量的赋值方式 可变变量 PHP预定义变量
变量的概念
其值可以改变的量称为变量。变量为开发人员提供了一个有名字的内 存存储区,程序中可以通过变量名对内存存储区进行读、写操作。为了确 定每个变量内存存储区的大小,存储区中可以存放数据范围,以及变量可 以使用的运算符。系统为程序中的每一个变量分配一个存储单元,变量名 实质上就是计算机内存单元的命名。因此,借助变量名就可以访问内存中 的数据。
使用constant()函数获取常量的值
语法
mixed constant(string const_name)
使用defined()函数判断常量是否已经被定义
语法
bool defined(string constant_name)
预定义常量
常 量 名
__FILE__
__LINE__ PHP_VERSION PHP_OS TRUE FALSE NULL
<?php $change_name = "php"; $php = "编程的关键因素在于学好语言基础!"; echo $change_name ; echo $$change_name ; ?>
PHP预定义变量
PHP还提供了很多非常实用的预定义变量,通过这些预定义变量可以获 取到用户会话、用户操作系统的环境和本地操作系统的环境等信息。
语法
define(string constant_name,mixed value,case_sensitive=true)
第3章 PHP基础--张文元

PHP5语法基础
——PHP的数据类型
PHP的数据类型主要有8种:即字符串型、布尔型、 整型、浮点型、数组、对象、资源和NULL。
表2-1 转义字符
字符串型为string,无论 是单一字符还是多个字符 都是用这个变量类型。 PHP允许使用单引号、双 引号或{}来定义一个字符 串变量。 <?php $a='字符';$b='字符串'; echo '这是$a <br>'; echo '这是'.$a."<br>"; echo "这是$b <br>"; echo "这是\$b <br>"; echo "这是{$a}与{$b}演示"; ?>
3.2 数据类型
3.2.4 布尔型 布尔型用于表示真值,其取值可以是true或false。布 尔值通常用于控制程序的执行流程。若要定义指定 一个布尔值,可以使用关键字true或false,这两个关 键字是不区分大小写的,因此也可以使用True或 False。例如: <?php $b1 = true ; <?php $flag= TRUE; //把TRUE赋值给变量 $b2 = false ; $flag ?> ?>
<?php $arr=array(5=>1,12=>2); $arr[]=3; $arr["x"]=4; print_r($arr); echo "<br>"; unset($arr[5]); print_r($arr); echo “<br>”; unset($arr); print_r($arr); ?>
PHP编程基础与实例教程第二版课件3

“root” “root” “student”
PHP编程基础与实例教程(第二版)
3-1 常量
2. 预定义常量
PHP还预定义了许多常量,这些常量无需使用define()函数 定义,可直接在程序中使用。 1.__FILE__(FILE前后是两个下划线):当前正在处理的脚 本文件名。 2.__LINE__(LINE前后是两个下划线):正在处理的脚本文 件的当前行数。 3.PHP_VERSION:当前 PHP预处理器的版本,如'5.3.0'。 4.PHP_OS:PHP所在的操作系统的类型,如'Linux'。 5.TRUE:表示逻辑真;FALSE常量:表示逻辑假;NULL常量: 表示没有值或值不确定。 6.DIRECTORY_SEPARATOR常量:表示目录分隔符,Unix或 Linux操作系统环境时的值为“/”;Windows操作系统环境时 的值为“\”。 PHP编程基础与实例教程(第二版)
3-1 常量
2. 常量的内存分配
内存中专门为常量的存储分配了一个空间:常量存储区。 常量存储区是一块比较特殊的存储空间,位于该存储空间的常 量是全局的,且在程序运行期间不能修改和销毁。
例如程序define.php <?php //定义DATABASE常量,此时DATABASE常量名大小写敏感 define("DATABASE","student"); //定义USER_NAME常量,此时USER_NAME大小写敏感 define("USER_NAME","root",FALSE); //定义PASSWORD常量,此时PASSWORD大小写不敏感 define("PASSWORD","root",TRUE); echo DATABASE;//输出:student echo "<br/>"; echo USER_NAME;//输出:root echo "<br/>"; echo password;//输出:root ?>
PHP+MySQL动态网站开发基础教程第3章 字符串
PHP基础教程
第3章 字符串
第10页
主要内容
3.1 3.2 3.3 3.4 3.5 3.6 创建和访问字符串 搜索字符串 在字符串中进行字符替换 格式化字符串 字母大小写转换 本章小结
PHP基础教程
第3章 字符串
第11页
3.2 搜索字符串
实际开发中,经常需要判断两个字符串是否具有包 含关系,PHP提供了以下函数:
►string strtolower ( string $string)
如果想要将一个字符串全变成大写,则使 用strtoupper()函数,语法格式如下:
►string strtoupper ( string $string )
PHP基础教程
第3章 字符串
第18页
主要内容
3.1 3.2 3.3 3.4 3.5 3.6 创建和访问字符串 搜索字符串 在字符串中进行字符替换 格式化字符串 字母大小写转换 本章小结
► $character = $string[index]
访问字符串中的多个连续字符:如果需要从一个字符串中 读取连续的几个字符,即从一个字符串中取子字符串,要 用substr()函数,其语法格式如下:
► string substr (string $string , int $start [, int $length ])
PHP基础教程
第3章 字符串
第19页
3.10 本章小结
字符串的创建和访问。 strstr(),strpos()和strrpos() 。 substr_count() 。 strpbrk() 。 str_replace()。 substr_replace() 。 strtr() 。 printf(),sprintf(),trim()、ltrim()、rtrim()、str_pad() 、wordwrap()和number_format()。 strtolower()、strtoupper()、ucfirst()、lcfirst()、 ucwords()。
PHP学习第3章运算符和表达式
PHP学习记录3.运算符和表达式 (3)3.1.运算符 (3)3.1.1.数学运算符 (3)3.1.2.字符运算符 (4)3.1.3.比较运算符 (5)3.1.4.赋值运算符 (6)3.1.5.逻辑运算符 (6)3.1.6.递增递减运算符 (7)3.1.7.三目运算符 (8)3.1.8.运算符的优先级 (8)3.2.表达式 (9)3.2.1.基本表达式形式 (9)3.2.2.表达式的值 (9)3.2.3.比较表达式 (9)3.2.4.三目表达式 (9)3.运算符和表达式3.1.运算符3.1.1.数学运算符例子名称结果-$a取反$a的负值。
$a+$b加法$a和$b的和。
$a-$b减法$a和$b的差。
$a*$b乘法$a和$b的积。
$a/$b除法$a除以$b的商。
$a%$b取模$a除以$b的余数。
注意:除法运算总是返回浮点数,但是在两个数都是整数或字符串转换成的整数,并且运算结果刚好被整除,此时返回一个整数。
取模运算的操作数在运算之前都会转换成整数,出去小数部分,符号和被除数的正负相同。
如$a%$b的结果与$a的结果相同。
例子:<?php$a=8;$b=2;$c=3;echo"\$a=".$a;echo"<br>";echo"\$b=".$b;echo"<br>";echo"\$c=".$c;echo"<br>";echo"\$a+\$b=".($a+$b);echo"<br>";echo"\$a-\$b=".($a-$b);echo"<br>";echo"\$a*\$b=".($a*$b);echo"<br>";echo"\$a/\$b=".($a/$b);echo"<br>";echo"\$a%\$b=".($a%$b);echo"<br>";echo"\$a/\$c=".($a/$c);echo"<br>";echo"\$a%\$c=".($a%$c);?>输出结果:$a=8$b=2$c=3$a+$b=10$a-$b=6$a*$b=16$a/$b=4$a%$b=0$a/$c=2.6666666666667$a%$c=23.1.2.字符运算符字符运算符只有一个“.”(点号),对字符串进行连接操作,可以实现字符串的连接,也可以实现对字符串的连接赋值。
PHP程序开发-PHP基础案例教程第3章 函数
✎ 3.3 函数的高级应用
1. 静态变量
所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才 为局部静态变量。 (上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时, 这个值保持不变。) 思考:如何轻松得到一个函数被访问的次数? 答案:一是在函数中使用全局变量记录,缺点是全局变量可随时在函数外被改变, 不能准确的记录;二是在函数中使用静态变量。
PHP的内置函数
✎
目录
PHP手册的使用
✎ 3.1 函数的定义与调用
1. 初识函数
函数:封装一段用于完成特定功能的代码
当使用一个函数时,只需关心函数的参数和返回值,就可以完成一个特定的功能
函数就是为了解决一些常见问题实现制作好的 “模”,哪里需要就用
PHP函数分为:系统内部函数 和 自定义函数 函数的优越性: 控制程序设计的复杂性 提高软件的可靠性 提高软件的开发效率 提高软件的可维护性 提高程序的重用性
内嵌函数与局部变量不同,不会限制内嵌function的作用域——在外套函数外也可 以使用。 内嵌函数也不会自动获得外套函数的变量。 只有先调用了外套函数之后,内嵌函数才能被调用。
✎ 3.2 函数的嵌套调用
2. 递归调用
递归调用:是函数嵌套调用中一种特殊的调用。它指的是一个函数在其函数体内调 用自身的过程,这种函数成为递归函数。 注意:1,递归必须 要有边界条件,也就是递归出口(退出递归)
return “功能区“; } //之后 echo demo()
✎ 3.1 函数的定义与调用
函数返回值
在大部分编程语言中,return关键字可以将函数的执行结果返回,PHP中return的 用法也大同小异,对初学者来说,掌握PHP中return的用法也是学习PHP的一个开 始。首先,它的意思就是返回;return()是语言结构而不是函数 将函数的值传递给调用者,同时终止函数。 只有一个返回值。 1、如果执行了return,则return 语句后面的内容将不会被执行了; function demo(){ return "111111"; echo "3333"; return "222222"; } echo demo(); }
PHP基础教程第三章
第三章访问MySQL数据库第一节什么是MySQL?MySQL是一种数据库。
数据库定义了存储信息的结构。
在数据库中,存在着一些表。
类似HTML表格,数据库表含有行、列以及单元。
在分类存储信息时,数据库非常有用。
一个公司的数据库可能拥有这些表:"Employees","Products","Customers"以及"Orders"。
MySQL的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。
也许正因如此,许多人认为MySQL 仅仅能处理中小型的系统。
事实上,对于那些支持巨大数据和访问量的网站,MySQL是事实上的标准数据库(比如Friendster, Yahoo, Google)。
这个地址提供了使用MySQL的公司的概览:/customers/。
第二节MySQL的的主要特性o 使用C和C++编写o 用众多不同的编译器进行了测试o 能够工作在众多不同的平台上。
o 使用GNU Automake、Autoconf和Libtool进行移植。
o 提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
o 采用核心线程的完全多线程如果有多个CPU,它能方便地使用这些CPU。
o 提供了事务性和非事务性存储引擎。
o 使用了极快的“B树”磁盘表(MyISAM)和索引压缩。
o 添加另一个存储引擎相对简单。
如果打算为内部数据库添加一个SQL接口,该特性十分有用。
o 极快的基于线程的内存分配系统。
o 通过使用优化的“单扫描多连接”,能实现极快的连接。
o 存储器中的哈希表用作临时表。
o SQL函数是使用高度优化的类库实现的,运行很快。
通常,在完成查询初始化后,不存在存储器分配。
o 采用Purify(商业内存溢出检测器)以及GPL工具Valgrind (/~sewardj/)测试了MySQL代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章访问MySQL数据库第一节什么是MySQL?MySQL是一种数据库。
数据库定义了存储信息的结构。
在数据库中,存在着一些表。
类似HTML表格,数据库表含有行、列以及单元。
在分类存储信息时,数据库非常有用。
一个公司的数据库可能拥有这些表:"Employees","Products","Customers"以及"Orders"。
MySQL的一点很棒的特性是,可以对它进行缩减,来支持嵌入的数据库应用程序。
也许正因如此,许多人认为MySQL 仅仅能处理中小型的系统。
事实上,对于那些支持巨大数据和访问量的网站,MySQL是事实上的标准数据库(比如Friendster, Yahoo, Google)。
这个地址提供了使用MySQL的公司的概览:/customers/。
第二节MySQL的的主要特性o 使用C和C++编写o 用众多不同的编译器进行了测试o 能够工作在众多不同的平台上。
o 使用GNU Automake、Autoconf和Libtool进行移植。
o 提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
o 采用核心线程的完全多线程如果有多个CPU,它能方便地使用这些CPU。
o 提供了事务性和非事务性存储引擎。
o 使用了极快的“B树”磁盘表(MyISAM)和索引压缩。
o 添加另一个存储引擎相对简单。
如果打算为内部数据库添加一个SQL接口,该特性十分有用。
o 极快的基于线程的内存分配系统。
o 通过使用优化的“单扫描多连接”,能实现极快的连接。
o 存储器中的哈希表用作临时表。
o SQL函数是使用高度优化的类库实现的,运行很快。
通常,在完成查询初始化后,不存在存储器分配。
o 采用Purify(商业内存溢出检测器)以及GPL工具Valgrind (/~sewardj/)测试了MySQL代码。
o 服务器可作为单独程序运行在客户端/服务器联网环境下。
它也可作为库提供,可嵌入(链接)到独立的应用程序中。
这类应用程序可单独使用,也能在网络环境下使用。
第三节MySQL的安装安装MySQL的步骤如下:请注意按图中所示,有些选项和默认是不一样的。
同时,如果您是重新安装MySQL的话,要注意先备份好MySQL目录中的data目录,这个目录是所有用户的数据目录,非常重要,不可大意。
重装时,备份好数据后,先卸载掉旧的MySQL,并删除原MySQL安装目录。
请注意上图中选择Custom选项,这样才能修改安装目录。
请注意为了数据安全,不要把mysql安装在系统盘,如C:盘。
点击Next后,就开始配置MySQL数据库了。
请注意上图中的设置,把mysql的同时连接数改为了1000.请注意上图中,MySQL的服务名称选为"MySQL",不要使用其它符号。
上图中所填密码即是MYSQL的管理员Root的密码。
至此MySQL安装成功。
第四节使用SQLYog管理MySQL数据库SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。
使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。
SQLyog相比其它类似的MySQL数据库管理工具其有如下特点:1、基于C++和MySQLAPI编程;2、方便快捷的数据库同步与数据库结构同步工具;3、易用的数据库、数据表备份与还原功能;4、支持导入与导出XML、HTML、CSV等多种格式的数据;5、直接运行批量SQL脚本文件,速度极快;6.新版本更是增加了强大的数据迁移组件;此汉化基于企业零售版,拥有免费版和专业版所没有的专业组件(如:数据迁移、数据同步、通知服务等),是MySQLDBA的必备工具。
下面我们如何使用SQLyog来连接并管理数据库。
第五节PHP的MySQL函数PHP:指示支持该函数的最早的PHP 版本。
函数描述PHPmysql_affected_rows() 取得前一次MySQL 操作所影响的记录行数。
3 mysql_change_user() 不赞成。
改变活动连接中登录的用户 3 mysql_client_encoding() 返回当前连接的字符集的名称 4 mysql_close() 关闭非持久的MySQL 连接。
3 mysql_connect() 打开非持久的MySQL 连接。
3mysql_create_db() 不赞成。
新建MySQL 数据库。
使用mysql_query()代替。
3 mysql_data_seek() 移动记录指针。
3 mysql_db_name() 从对mysql_list_dbs() 的调用返回数据库名称。
3 mysql_db_query() 不赞成。
发送一条MySQL 查询。
使用mysql_select_db() 和mysql_query() 代替。
3mysql_drop_db() 不赞成。
丢弃(删除)一个MySQL 数据库。
使用mysql_query() 代替。
3mysql_errno() 返回上一个MySQL 操作中的错误信息的数字编码。
3mysql_error() 返回上一个MySQL 操作产生的文本错误信息。
34 mysql_escape_string() 不赞成。
转义一个字符串用于mysql_query。
使用mysql_real_escape_string() 代替。
3 mysql_fetch_array() 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。
mysql_fetch_assoc() 从结果集中取得一行作为关联数组。
4 mysql_fetch_field() 从结果集中取得列信息并作为对象返回。
3 mysql_fetch_lengths() 取得结果集中每个字段的内容的长度。
3 mysql_fetch_object() 从结果集中取得一行作为对象。
3 mysql_fetch_row() 从结果集中取得一行作为数字数组。
3 mysql_field_flags() 从结果中取得和指定字段关联的标志。
3 mysql_field_len() 返回指定字段的长度。
3 mysql_field_name() 取得结果中指定字段的字段名。
3 mysql_field_seek() 将结果集中的指针设定为指定的字段偏移量。
3 mysql_field_table() 取得指定字段所在的表名。
3 mysql_field_type() 取得结果集中指定字段的类型。
3 mysql_free_result() 释放结果内存。
3 mysql_get_client_info() 取得MySQL 客户端信息。
4 mysql_get_host_info() 取得MySQL 主机信息。
4 mysql_get_proto_info() 取得MySQL 协议信息。
4 mysql_get_server_info() 取得MySQL 服务器信息。
4 mysql_info() 取得最近一条查询的信息。
4 mysql_insert_id() 取得上一步INSERT 操作产生的ID。
3 mysql_list_dbs() 列出MySQL 服务器中所有的数据库。
33 mysql_list_fields() 不赞成。
列出MySQL 结果中的字段。
使用mysql_query() 代替。
mysql_list_processes() 列出MySQL 进程。
43 mysql_list_tables() 不赞成。
列出MySQL 数据库中的表。
使用Use mysql_query() 代替。
mysql_num_fields() 取得结果集中字段的数目。
3 mysql_num_rows() 取得结果集中行的数目。
3 mysql_pconnect() 打开一个到MySQL 服务器的持久连接。
3第六节用PHP连接MySQL在我们从我们的MySQL数据库中获取我们的Web页面所包含的内容之前,我们首先必须知道如何建立与MySQL的连接。
在第四节中,我们使用了一个叫SQLyog的程序来做这样的连接。
PHP不需要这样的一个程序,对连接MySQL的支持是语言内置的。
下面的这个函数用来建立这样的连接:在这里,<address>是MySQL服务软件在其上运行的计算机的IP地址或主机名(如果这与运行Web服务软件的计算机是同一台,你可以使用"localhost"),<username>和<password>就是你在第四节中用来连接到MySQL服务器的用户名及口令。
PHP中绝大多数的函数在被调用后往往会返回(输出)一个值,可以存储在变量中以备下次使用。
例如我们上面介绍的mysql_connect函数,会返回一个数字来标识已经建立的连接。
因为我们会要使用这个连接,所以我们必须保存这个值。
下面是一个关于如何连接我们的MySQL数据库的一个实例:需要说明的是,对于你的MySQL服务器,上面这个函数中的三个参数的值可能是不同的。
你应该注意到在这儿我们的mysql_connect 返回了一个值(我们称之为一个连接标识),这个值被我们存储在变量$dbcnx中。
因为MySQL是一个完全分布式的软件,我们必须考虑到这些可能性:服务不可用、网络堵塞或者是我们的用户名及口令不匹配。
在这些情况下,mysql_connect函数不能返回一个连接标识(因为连接未被建立)。
这时,会返回一个逻辑假。
这使得我们可以用一个if 语句来处理连接的情况:@符号。
包括mysql_connect在内的许多函数会在失败后显示难看的错误信息。
在函数名前加一个@符号可以告诉这个函数当执行失败时,允许我们显示我们自己友好的出错信息。
其次,在我们的if语句的条件中,$dbcnx变量前面加了一个惊叹号。
这个惊叹号是PHP 中的“否运算符”。
也就是说将逻辑真变为逻辑假,将逻辑假变为逻辑真。
这样,如果这个连接是失败的,mysql_connect会返回一个逻辑假,!$dbcnx将等于逻辑真,这样我们的if 语句将被执行。
相反,如果这个连接是成功的,存储在$dbcnx 中的连接标识将等于逻辑真(在PHP中,任何非零的数字都被认为是逻辑真),所以!$dbcnx会等于逻辑假,if语句将不会被执行。
最后一个是exit函数,这是一个没有参数的函数。
这个函数的全部作用就是导致PHP 停止对本页的阅读。
如果数据库连接失败这是一个很好的响应,因为绝大多数情况下,如果不能连接到数据库,这一页不会显示任何有用的信息。