### PHP 与 MySQL 建构强力网站(2)

LINUXFAB.CX. IN A 140.113.88.7
IN HINFO "X86 PC" "MITUX SVR4MP"
其中 dns.linuxfab.cx 是指 .linuxfab.cx 这个网域的 DNS，我们从内容可以看出我们已经设定了 www.linuxfab.cx 为 140.113.88.7，至於最後一行却采用了大写的 LINUXFAB.CX， 这样的设定可以使得网域名称本身同时也成为该 ip 所在的 host 的 domain name。 也就是说 linuxfab.cx 本身是一个网域名称，所有在其下的 host 的 domain name 应该都是 xxx.linuxfab.cx，但是这样的设定使得 linuxfab.cx 这个名字本身也可拿来作为 host 的 domain name。
在设定完 named.boot 与 named.hosts 之後，我们只需要执行 named 这个程式就完成了 DNS 整个设定与启动的动作，在属於该网域内的 domain name 被查询时，named 会将其往上游传送。
特别值得注意的是，当变动了 domain name 的设定时，named 必须要重新执行， 然而世界各地的 DNS 却并不会立刻就得知你的新设定，这是因为 DNS 机制是采用分散式的处理方式， 一层负责一层，新的设定要生效至少也需要一至两叁天， 这时间的长短有部份可以由 named.hosts 的上方那五行数字来决定

。
用 SQL 查询语言来操作关连式资料库
设定好了 DNS 之後，我们来谈谈如何利用 SQL 查询语言来操作关连式资料库， SQL 的用法很简单(否则它就不叫 simple query language 了)，不过在介绍之前， 我们先说明一下如何安装 MySQL :
1.取得并解开 mysql-3.22.25.tgz : tar xvfz mysql-3.22.25.tgz
2.设定使用 Big5 字集 : configure □with-charset=big5
3.编译 : make
4.安装 : make install
5.建立基本资料库 : ./script/mysql_install_db □force
6.启动资料库 : mysql.server start
用 SQL 查询语言来操作关连式资料库
MySQL 里头提供了一个非常方便的互动式 SQL 操作环境，这只程式就叫做 mysql，使用者可以在里面直接输入 SQL 指令，如果发生指令太长无法在一行内输入完时， 可以直接按下 enter 到下一行继续输入，只要记得在每行指令後面加上分号， 再按下 enter 即可输出该 SQL 指令，现在请以 root 身分进入该环境 :
mysql □u root
接下来我们便以这个环境来输入 SQL 指令并且验证 SQL 的强大威力，我们介绍四个最常见的资料库操作 : 建立资料库、建立表格、输入一笔资料、查询资料。SQL 查询语言来操作关连式资料库 : 建立资料库

一个资料库中可以包含许多表格，这就像是一个公司内部有很多的资料， 有薪资资料、考绩资料、职位资料等等、而这些都是属於同一个资料库的， 在建立这些表格之前，应该先建立该资料库。
建立资料库的方式很简单，指令格式如下 :
create database 资料库名称
比如说我们开始建立公司资料库，输入的指令就可以是 :
create database MyComp;
当你建立了许多资料库之後，你必须先指定使用哪个资料库， 才可以针对该资料库进行更进一步的操作，指定使用资料库的指令格式如下 :
use 资料库名称
我们现在要使用 MyComp，所以输入
use MyComp
用 SQL 查询语言来操作关连式资料库 : 建立表格
有了资料库之後，我们便可以建立属於该资料库下的表格，指令格式如 下 :
create table 表格名称 (栏位 1 资料定义, 栏位 2 资料定义, . . .)
其中资料形态有很多，其中最常见的有 :
儭鮪 t(x) : x 位数的整数
儭鮡 al(x) : x 位数的实数
儭鮤 ar(x) : x 个字元的字串
儭鮡 xt : 不限长度的字串
冾豠 te : 日期 (年/月/日)
儭鮥 me : 时间 (时/分/秒)
冾豠 tetime : 日期+时间
比如说要建立一个人事薪资资料库表格，我们可以建立如下 :
create table SalaryDB (name char(8), age int(3), address text, salary int(8))
SQL 查询语言来操作关连式资料库 : 输入资料
在表格中输入一笔资料的指令格式如下 :
insert into 表格名称 values(栏位 1 资料, 栏位 2 资料, . . .)
比如刚才的 SalaryDB 中，我们输入叁笔员工资料 :
insert into SalaryDB values(’小黄’, 28, ’山上’, 20000)
insert into SalaryDB values(’小李’, 26, ’山下’, 25000)
insert into SalaryDB values(’小红’, 20, ’海边’, 24000)
用 SQL 查询语言来操作关连式资料库 : 查询资料
SQL 查询资料的威力强大，指令格式如下 :
select 栏位, 栏位, … from 表格 where 查询条件
[ex1] 比如说我要查询资料库中年龄小於 27 岁的员工姓名、年龄与薪水 :
select name, age, salary from SalaryDB where age=23000
输出 :
name
Address
小红
海边
[ex3] 若要查询年龄小於 25 岁或者薪资大於 23000 元的员工所有资料 :
select * from SalaryDB where age23000
输出 :
name
age
address
salary
小李
26
山下
25000
小红
20
海边
24000
[ex4] 若要查询大於 25 岁的员工中，薪水最多为多少 :
select max(salary) from SalaryDB where age>25
输出 :
max(salary)
25000
[ex5] 若要查询共有多少位员工薪资超过 20000 元 :
select count(*) from SalaryDB where salary>20000
输出 :
count(*)
2
SQL 所提供的指令还有很多，在此只介绍最常用的，让各位能够轻松一窥 SQL 的堂奥。
HP 网页设计语言
接下来我们来介绍 PHP 的安装与简单用法，Apache web server 提供了模组 (module) 功能，也就是让任何人可以扩充 Apache 的功能，PHP 事实上便是设计人 Ramus 发展的 Apache 模组，PHP 可以执行网页中所嵌入的 PHP 程式， 然後将程式的输出资料连同原本的网页资料一起传送给浏览者。
在此，我们先介绍一下 PHP 的安装，由於 PHP 是 Apache 的一个模组， 因此两者必须同时安装，我们以 Apache 1.3.4 版与 PHP 3.0.7 版为例，以下便是两者的安装过程 :
1.解开 apache : tar xvfz apache_1.3.4.tar.gz
2.解开 php : tar xvfz php-3.0.7.tar.gz
3.到 apache 目录下 : cd ~/ apache_1.3.4
4.设定 apache 组态(安装到 /usr/local/apache 下) : configure --prefix=/usr/local/apache
5.到 php 目录下 : cd ~/php-3.0.7
6.设定 php 组态(设定支援 mysql 资料库) : configure --with-mysql --with-apache=
../apache_1.3.4 --with-gd=../gd1.3 --enable-track-vars
7.编译 : make; make install
8.到 apache 下 : cd ~/php-3.0.7
9.再设定一次 apache 组态 : configure --prefix=/usr/local/apache --activate-module=
src/modules/php3/libphp3.a
10.编译 : make;make install
11.到 php 目录下 : cd ~/php-3.0.7
12.拷贝 php 设定档 : cp php3.ini-dist /usr/local/lib/php3.ini
13.修改 apache 设定档(使得 .php3 副档名的档案可以被 php module 认得，并且被执行)