PHP/MySQL三日通-第一天(二)

四、第一个脚本

本文转自:

如果我告诉您真正难过的一关已经过了,您一定会很高兴。软件的安装过程总是无法预料,因为系统跟系统之间可以说是千差万别。不过您运气不错,数据库运行起来,PHP也编译安装完毕,Web服务器也可以正确处理扩展名为.php3的文件了。

作者:Sam(甄峰) sam_code@hotmail.com

我们下面就开始正式上路,要写第一个脚本程序了。创建一个文本文件,在其中加入下面的内容:

 

$#@60;html$#@62;$#@60;body$#@62;$#@60;?php$myvar = “Hello
World”;echo $myvar;?$#@62;$#@60;/body$#@62;$#@60;/html$#@62;

这段时间Sam需要建立一个STB使用的网站。有同事推荐了AppServ,这个软件安装MySQL和Apache,PHP,并自动配置,很是方便。但考虑到未来可能还需要将LUA,Perl,ASP等。还是自己依次安装配置更有可控性。

现在,访问相应的URL,例如,。您应该可以看到页面中包含Hello
World的文字。如果您看到的是错误信息,查一下PHP文档,看看软件设置是否正确无误。

因为IIS要支持PHP,所以需要对IIS配置。而PHP与MySQL连接很好。

就是这样了!这是您的第一个PHP程序。如果您查看一下这个页面的HTML源代码,您会发现里面只有Hello
World 这样的文字。

 

那是因为PHP引擎过滤了文件内容,对其中的代码作了处理,转换成了标准的HTML。

一:软件准备:

在上面的程序中您最先注意到的可能是定界符,也就是以$#@60;?php开始的那几行。这个标记说明后面是PHP代码,而?$#@62;表示代码结束。PHP的强大之处在于,这些代码可以以多种不同方式放在任意位置

我是说任意位置。后面我们会看到一些很有趣的例子,现在我们还是从最简单的开始。如果您愿意,也可以设置PHP,让它使用短标记,$#@60;?和?$#@62;,但这与XML会发生冲突,所以要小心使用。如果您是从ASP转向PHP,您甚至可以让PHP使用$#@60;%和%$#@62;作为定界符。

  1. PHP(PHP-5.2.11)

您还会注意到每行后面的分号。这些分号称为分隔符,用于分隔不同的指令。您可以把所有的PHP代码写在一行里,用分隔符把命令分开。但是那样看起来很乱,所以我们在每个分号后面都另起一行。记住,每行最后都要以分号结束。

最后,您会注意到myvar这个字以$符号开头。这个符号告诉PHP,这是一个变量。我们把Hello
World赋给变量$myvar。一个变量可以是数字,也可以是数组。不管怎样,所有的变量都是以$符开头。

php-5.2.11-Win32.zip

PHP真正强大之处来源于它的函数。函数,基本上是处理指令序列。如果您把所有的选件都编译进PHP,总共会有超过700个函数。这些函数可以让您做很多事情。

 

现在我们再加进一些MySQL的内容进去。

  1. MySQL(5.4.2)

五、装载数据库

http://dev.mysql.com/downloads

现在,我们要加入MySQL的内容了。要想知道PHP中包含哪些选项,或服务器方面的一些情况,一种简便的方法是使用函数phpinfo()。创建一个象下面这样的程序:

mysql-essential-5.4.2-beta-win32.msi

$#@60;html$#@62;$#@60;body$#@62;$#@60;?phpphpinfo();?$#@62;$#@60;/body$#@62;$#@60;/html$#@62;

 

保存这个程序,在浏览器中访问这个文件。您会看到网页中包含了一些有趣的、有用的信息,象这样。这些信息是有关服务器、Web服务器内部环境变量、PHP中包含的选项,等等。在第一段Extensions中,找到以MySQL开头的一行。如果没有找到,那说明MySQL支持选项并没有编译进PHP。您可以再检查一下安装步骤,查阅一下PHP文档,看您是否漏掉了什么。

  1. PHPMyAdmin

如果找到了MySQL那一行,那您可以继续了。

phpMyAdmin-3.2.0.1-all-languages.zip

从MySQL数据库中读取数据之前,我们得先往数据库里放一些数据。在现在这一阶段,还没有一个简便的方法来做这件事情。大多数的PHP程序都带有一个数据文件,该文件包含一些数据来创建并激活MySQL数据库。这个过程不在本教程范围之内,所以让我来替您做这件事情吧。

 

MySQL使用它自己的用户权限表。在安装时,会创建一个默认的用户,该用户是没有口令的。数据库管理员可以根据需要来增加用户并赋予用户各种不同的权限,但这项工作完全可以另写一本书了,所以我们只使用root用户。如果您自己管理服务器和数据库,为root用户分配一个口令是很重要的。

 

总之,我们还是接着说数据库吧。对Win32用户来说,很对不起,不过您要在DOS下做些工作。您不得不使用DOS窗口,或者在执行窗口中键入所有命令。别忘了,输入命令时要带上MySQL/bin的目录名。Unix用户可以在MySQL的bin目录下输入命令,但命令必须以./开头,才能让程序运行起来。

二:软件安装设置:

我们要做的第一件事情是实际创建出数据库。在命令行下,键入下列命令:

 

mysqladmin -u root create mydb

1. PHP安装:

这样就创建了一个名为mydb的数据库。-u选项告诉MySQL我们使用的是root用户。

php-5.2.11-Win32.zip解开压缩之后,放置到C:publicphp-5.2.11-Win32中。

下一步,我们要加入一些数据,这里我们用的示例数据是大家都喜欢用的员工数据库。我们将会用到我前面提到过的数据文件。如果您想在这方面多了解一些,可以查阅MySQL所带的手册或访问
网站。

1.1 DLL文件copy:

把下面的文字复制到一个文件中,把该文件存在MySQL的bin目录下。

将C:publicphp-5.2.11-Win32目录下的所有dll文件copy到c:Windowssystem32下.

CREATE TABLE employees ( id tinyint(4) DEFAULT 0 NOT NULL
AUTO_INCREMENT, first varchar(20), last varchar(20), address
varchar(255), position varchar(50), PRIMARY KEY (id), UNIQUE id
(id));INSERT INTO employees VALUES (1,Bob,Smith,128 Here St,
Cityname,Marketing Manager);INSERT INTO employees VALUES
(2,John,Roberts,45 There St , Townville,Telephonist);INSERT INTO
employees VALUES (3,Brad,Johnson,1/34 Nowhere Blvd, Snowston,Doorman);

 

如果文字是折行的,请确保每一个INSERT语句都是另起一行的。现在,我们要把数据加入到mydb数据库中了。在命令行下,键入下面的命令:

1.2 可执行文件和ini文件的copy:

 mysql -u root mydb $#@60; mydb.dump

将C:publicphp-5.2.11-Win32目录下的php.exe、php-win.exe和php.ini-dist三个文件拷到C:Windows
( Windows 2000 下为
C:WINNT)下;将C:Windowsphp.ini-dist改名为php.ini.

此时您应该不会遇到什么错误。如果真的出错了,请仔细检查一下是否因上面的文字折行而引起错误。

1.3. 修改PHP ini文件:

六、测试

使用UltraEdit打开C:Windowsphp.ini

OK,现在我们已经把数据导入到数据库中了。现在我们来处理这些数据。把下面的文字存入一个文件中,把该文件存在Web服务器的文档目录下,后缀名为.php3。

register_globals = Off

$#@60;html$#@62;$#@60;body$#@62;$#@60;?php$db =
mysql_connect(“localhost”,
“root”);mysql_select_db(“mydb”,$db);$result = mysql_query(“SELECT *
FROM employees”,$db);printf(“First Name: %s$#@60;br$#@62;/n”,
mysql_result($result,0,”first”));printf(“Last Name:
%s$#@60;br$#@62;/n”, mysql_result($result,0,”last”));printf(“Address:
%s$#@60;br$#@62;/n”,
mysql_result($result,0,”address”));printf(“Position:
%s$#@60;br$#@62;/n”,
mysql_result($result,0,”position”));?$#@62;$#@60;/body$#@62;$#@60;/html$#@62;

,将 Off 改成 On ;

我来解释一下上面的代码。mysql_connect()函数负责以指定的用户名连接到指定机器上的MySQL数据库。如果您想指定用户口令,您也可以把它送给这个函数。连接的结果保存在变量$db中。

extension_dir =

随后,mysql_select_db()函数告诉PHP,我们要读取的数据库是mydb。我们可以在程序中同时连接到多台机器上的多个数据库,但目前我们还是限于连接一个数据库。

,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:extension_dir
= “C:publicphp-5.2.11-Win32ext” ;
搜索找到

接下来,mysql_query()函数完成最复杂的部分。利用刚才得到的连接结果标识,该函数把一行SQL语句送给MySQL服务器去处理。返回的结果保存在变量$result中。

;Windows Extensions

最后,mysql_result()函数显示SQL查询命令所得到的各个字段的值。利用变量$result,我们就可以找到第一条记录,记录号是0,并将其中各字段的值显示出来。

将下面列举的

如果您以前没用过Perl或C语言,那么printf函数的语法格式会显得很奇怪。在上面的每一行程序中,%s代表表达式第二部分中的那个变量应该以字符串的形式显示出来。

;extension=php_dbase.dll

这一课我们就讲到这里了。我们已经成功地编译、安装和设置了MySQL和PHP,并且运行了一个简单的程序来读取数据库中的信息。在第二课里,我们会做一些更复杂的工作,来显示多行记录的数据,甚至与数据库互相交换数据。

可选

继续努力吧!

;extension=php_gd2.dll

这个是用来支持GD库的,一般需要,必选

 

;extension=php_ldap.dll

可选

;extension=php_mbstring.dll

这不选一般用PHPMYADMIN会出红色提示,故必选

  

;extension=php_mssql.dll

这个是用来支持MSSQL的,可选

  

;extension=php_mysql.dll

这个是用来支持MYSQL的,要支持MYSQL必选
将这些前的”;”去掉,其他的你需要的也可以去掉前面的;然后关闭保存该文件。

 

 

2. IIS配置:

IIS安装很简单,但要让它支持PHP,则需要做进一步配置。

 

PHP 支持 CGI 和 ISAPI 两种安装模式,推荐使用 ISAPI 模式。这里只解介绍
ISAPI 模式安装方法:

 

 

2.1: 添加ISAPI筛选器:

在“控制面板->性能和维护->管理工具->Internet
信息服务”中选择”默认网站”。停止之。

反键点选”默认网站”->属性->ISAPI筛选器,添加筛选器。

筛选器名称:”:PHP”

可执行文件:”C:publicphp-5.2.11-Win32php5isapi.dll”

澳门新葡亰网站注册,Sam: 这里是给IIS指出:遇到PHP,使用php指定的筛选器.

 

2.2: 添加应用程序映射:

反键点选”默认网站”->属性->主目录->配置,添加应用程序映射。

.php和C:publicphp-5.2.11-Win32php5isapi.dll。

Sam:这里给IIS指出:遇到.php文件,使用何种程序解析之。

 

2.3: 添加文档index.php

反键点选”默认网站”->属性->文档

添加一个index.php.

可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开
index.php 文档.

 

2.4. 重新启动IIS:

net stop w3svc
net stop iisadmin
net start w3svc

 

2.5.写index.php.

首先在反键点选”默认网站”->属性->主目录下看本地路径,通常为:C:Inetpubwwwroot

则在这个目录中建立:一个index.php,内容如下:

<?php
phpinfo();
?>

 

此时,IIS已经支持PHP。

使用浏览器:http://localhost

则出现php info页面,且Server API的模式为:ISAPI , MySQL也为Enable.

也许使用其他电脑http://ipaddr如:http://172.16.1.46
没有显示,请察看防火墙。

 

 

3. 安装配置MySQL:

3.1 安装MySQL:

运行mysql-essential-5.4.2-beta-win32.msi。

安装在C:Program FilesMySQLMySQL Server 5.4。

 

3.2 配置 MySQL:

开始菜单->MySQL->MySQL Server Instance Config Wizar.

基本顺序Next,Sam 只修改了字符集为gb2312. root密码也修改了。

 

3.3: PHP与MySQL连接:

如何验证PHP是否与MySQL连接成功呢,当然是使用PHP能够读取MySQL内容了。

 

PHP想要读取MySQL数据库内容,则需要MySQL首先有一个数据库。

3.3.1:创建MySQL数据库:

开始菜单-> run ->cmd
(因为之前安装MySQL时,已经选中了会安装到命令行,所以直接运行MySQL命令是可行的)

mysqladmin -u root -p654321 create mydb

因为之前Sam已经给root创建了密码:654321
所以创建database时需要使用-p来输入密码,否则server不允许连接。

 

3.3.2: 给database写入内容:

在C:Program FilesMySQLMySQL Server
5.4bin中创建mydb.dump文件,并写入内容如下:

 

CREATE TABLE employees
(
id tinyint(4)  NOT NULL AUTO_INCREMENT, 
first varchar(20), 
last varchar(20), 
address varchar(255), 
position varchar(50), 
PRIMARY KEY (id), 
UNIQUE id (id)
);

INSERT INTO employees VALUES (1,’Bob’,’Smith’,’128 Here St,
Cityname’,’Marketing Manager’);

INSERT INTO employees VALUES (2,’John’,’Roberts’,’45 There St ,
Townville’,’Telephonist’);

INSERT INTO employees VALUES (3,’Brad’,’Johnson’,’1/34 Nowhere Blvd,
Snowston’,’Doorman’);

命令行进入C:Program FilesMySQLMySQL Server 5.4bin目录,运行

mysql -u root -p654321 mydb < mydb.dump
将mydb.dump内容写入mydb 这个database了。

 

3.3.3:  PHP读取MySQL database:

程序如下:

<html>

<body>

<?php

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

$result = mysql_query(“SELECT * FROM employees”,$db);

printf(“First Name: %s<br>n”,
mysql_result($result,0,”first”));

printf(“Last Name: %s<br>n”, mysql_result($result,0,”last”));

printf(“Address: %s<br>n”,
mysql_result($result,0,”address”));

printf(“Position: %s<br>n”,
mysql_result($result,0,”position”));

?>

</body>

</html>