網頁與資料庫整合運用

網頁與資料庫整合運用
- 以PHP & MySQL為例
卓憶芳
email:[email protected]
回到第一頁
內容簡介








資料庫與網頁
PHP & MySQL特色
安裝需求及測試
PHP簡介
MySQL使用
PHP+MySQL結合運用
MySQL管理工具
其它
回到第一頁
前言

Why use it ?
Free
 Plenty of resource
 Fashion


E-soft統計
(http://www.securityspace.com/s_survey/data/man.200010/apa
chemods.html )
2000 10 PHP: 3815440 Domains, 715238 IP-Addressen
2000 09 PHP: 3602795 Domains, 681637 IP-Addressen
2000 08 PHP: 3314634 Domains, 637746 IP-Addressen
2000 07 PHP: 3121918 Domains, 598213 IP-Addressen
2000 06 PHP: 2756002 Domains, 571610 IP-Addressen
…..
2000 01 PHP: 1271060 Domains, 391876 IP Addressen


Easy
Why don’t use it ?

Support
回到第一頁
網頁與資料庫關係

資料庫對於網頁設計?
 儲存大量資料
 有效運用及管理儲存的資料及資訊
 增加網頁的動態性,實用性(內容)
 例如,網路購物

網頁對於資料庫?
 2-Tier
client
 3-Tier
client
需要透過特定程式
DB Server
或登入系統
WebServer
DB Server
回到第一頁
PHP特色

PHP
 OSS,Free
&跨多平台,可適性高
 Y2K相容
 Server-side
HTML-embed script
language
 client看不見source
code.
 支援多種資料庫
Oracle.Sybase, Informix, dbase, MySQL,
Microsoft SQLServer, PostgreSQL
 支援其它協定
IMAP,SNMP,HTTP..
回到第一頁
MySQL特色

MySQL
 Free(Exception
for Microsoft
windows) & Multi-Platform
 支援標準SQL(ANSI SQL)
 SMALL&COMPACT
回到第一頁
安裝需求及測試

安裝需求
Apache
 Linux
 APACHE(1.3.12)
 MySQL (3.22.29)
PHP
IMAP
 PHP(4.0.2)
MySQL

安裝後測試
 MySQL
 PHP
start ? => daemon mysqld
install ok? => phpinfo()
回到第一頁
安裝步驟_1
安裝步驟(Apache Module Version)

Apache
#rpm -ivh apache-1.3.12-2.i386.rpm apache-devel-1.3.12-2.i386.rpm

安裝MySQL
#rpm -ivh MySQL-x.x.x.i386.rpm
#rpm -ivh MySQL-x.x.x.src.rpm
#rpm -ivh MySQL-client-x.x.x.i386.rpm(要先裝)
#rpm -ivh MySQL-devel-x.x.x.i386.rpm(include及lib)
(將MySQL的程式碼安裝到 /usr/src/redhat/SOURCES,編譯PHP時會使
用其相關的lib)
#cd /usr/src/redhat/SOURCES
#tar zxvf mysql-x.x.x.tar.gz
(將MySQL的source code 解開)
#cd mysql-x.x.x
#mkdir lib
#cp /usr/lib/mysql/libmysqlclient.a lib
#cp /usr/include/mysql/mysql_com.h include
#cp /usr/include/mysql/mysql_version.h include
回到第一頁
安裝步驟_2

安裝PHP
#cd /usr/src/redhat/SOURCES(或者/usr/local/src php3 的source目錄)
#gunzip php-x.x.x.tar.gz
#tar xvf php-x.x.x.tar
(或者二行合併為 #tar zxvf php-x.x.x.tar.gz)
 設定PHP的組態
※如果是apache 1.3.9要做下面修改的步驟
#cd /usr/sbin
#vi apxs
修改二個地方:(apache1.3.9才須要)
my $CFG_LDFLAGS_SHLIB = '-shared';
=>my $CFG_LDFLAGS_SHLIB = q(-shared);
my $CFG_LIBEXECDIR = 'modules';
=>my $CFG_LIBEXECDIR = '/usr/lib/apache';
#cd /usr/src/redhat/SOURCES/php-x.x.x(請輸入實際路徑)
#./configure --with-apxs=/usr/sbin/apxs --with-mysql=\
/usr/src/redhat/SOURCES/mysql-x.x.x
回到第一頁
安裝步驟_3

安裝PHP(續)
 編譯PHP
#make (在/usr/src/redhat/SOURCES/php-x.x.x目錄之下)
#make install
 編輯Apache 組態檔httpd.conf及srm.conf
#cd /etc/httpd/conf
#vi httpd.conf
加入或將行首的"#"去掉
LoadMoudle php3_module modules/libphp3.so
AddModule mod_php3.c
若安裝 PHP4 則為:
LoadMoudle php4_module /usr/lib/apache/libphp4.so
AddModule mod_php4.c
#vi srm.conf
加入或將行首的"#"去掉
AddType application/x-httpd-php3 .php3
若安裝 PHP4 則為:
AddType application/x-httpd-php .php(也可以是php3)
回到第一頁
安裝步驟_4

安裝PHP(續)
 複製
#cd /usr/src/redhat/SOURCES/php-x.x.x
#cp php3.ini-dist /usr/local/lib/php3.ini
若安裝 PHP4 則為:
#cd /usr/src/redhat/SOURCES/php-x.x.x
#cp php.ini-dist /usr/local/lib/php.ini

重新啟動Apache
#/etc/rc.d/init.d/httpd restart
(or /your apache home dir/apachectl
Shutting down httpd:
[ok]
Starting httpd:
[ok]
restart)
回到第一頁
PHP簡介

支援多種函數庫
 資料庫函數
 mysql_connect(“host”,”user”,”pass”);
http://140.120.150.102/~jyf/php3/ex/db2.php3
 ora_logon(“user@tnsname”,”pass”);
 FILE
SYSTEM函數
 exec(“touch
counter.txt”);
 FTP,HTTP,IMAGE, MAIL,PDF, SNMP,
SHOCKWAVE FLASH,XML等函數
回到第一頁
PHP簡介

PHP的外貌
<? phpinfo(); ?>

敘述
 echo
“string”; printf(“%0.1f”,$var);
 if (cond) { stat1;} else {state2;}
 for ($I=0;$I<max;$I++) { stat...;}

與HTML結合
<html>..<font..>今天是:
<?echo date(“Y 年 m 月 d 日”);?>
</font>
回到第一頁
MySQL使用

資料庫組織
 欄位(column)
=> 資料錄(record) =>
資料表(table) = >資料庫(database)
Table
Record
Column
 重要的database
-
mysql
host / user / db / func / tables_priv /
columns_priv
回到第一頁
MySQL使用

啟動
 #/usr/share/mysql/mysql.server
start
 /etc/rc.d/rcN.d/Sxxmysql

第一次使用
 設定資料庫使用者密碼
#mysqladmin -u root password Newpass

連結mysql資料庫
 進入mysql
#mysql -h hostname -u username -p
 連結資料庫
mysql>connect databasename;
回到第一頁
PHP+MySQL運用

How to ?
 PHP提供的mysql函數
mysql_connect(“host”,”user”,”pass”);
mysql_db_query(“db”,”sql”);

基本操作
 新增(I)
/ 修改(U) / 刪除(D) / 查詢(Q)
mysql_query($query_string);

實例
 訪客計數器/線上問卷調查
 留言板/討論區/檔案上傳
回到第一頁
PHP+MySQL_實例說明
線上問卷調查實例說明_1
<html><head><title>線上問卷調查(qa.htm)</title>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
</head>
<body bgcolor="#FFFFFF">
<p align="center">線上問卷調查</p>
<form method="post" action="qa_insert.php3">
<p> 姓名: <input type="text" name="name"> </p>
<p>e-mail: <input type="text" name="email"> </p>
<p>1.請問您使用電腦的經驗:
<input type="radio" name="expr" value="A"> 一年以下
<input type="radio" name="expr" value="B"> 二年
<input type="radio" name="expr" value="C"> 三年
<input type="radio" name="rexpr" value="D"> 四年以上</p>
………
…..
<input type="submit" name="Submit" value="送出">
<input type="reset" name="Reset" value="重填">
</form></body></html>

回到第一頁
PHP+MySQL_實例說明
線上問卷調查實例說明_2 (qa_insert.php3)
<html><head><title>問卷填寫完成(qa_insert.php3)</title></head>
<body bgcolor="#FFFFCC">
<?php
if (empty($name) || empty($email) || strlen(strpos($email,"@"))==0)
{ echo "<center>抱歉,你的姓名及電子郵件必須輸入或者email格式有誤";
?>
<form><input type=button value="回上一頁修改"
onclick="history.back();"></form> </center>
<?
}
else {
$db_name = “mytest”; //亦可於之前的Form 以hidden方式傳入
mysql_connect("localhost","abc",”password");
mysql_select_db($db_name);

// continue next page
回到第一頁
PHP+MySQL_實例說明

線上問卷調查實例說明_3 (qa_insert_php3 continue)
$sql = "insert into qa values('$name','$email','$expr','$adm','$pc',
'$design','$php','$pc_os','$os_other','$uss');";
if (mysql_query($sql))
{
?>
<p><font face="標楷體" size="4" color="#0000FF">
親愛的<? echo $name;?>學員:</font>
<p><font size="4" color="#0000FF">您的意見及資料我們已經收到,
謝謝你填寫本問卷。</font></p> <hr>
<?
} else
echo "<p>問卷寫入資料庫有誤!!</p>";
} ?>
<p><a href="../qa.htm">上一頁</a></p>
</body></html>
回到第一頁
PHP+MySQL_網站實例

網站實例
 ch1
http://www.ch1.com.tw/
 電子班級
http://163.18.207.151/e-class/
 神奇傑利網
http://www.jerry.com.tw/main/index.php3
?func_home=views
 線上論壇
http://linuxfab.cx/indexForumData.php?FID=1
回到第一頁
PHP+MySQL運用

Webmail
 IMP(2.2.3)
http://140.120.150.104/webmail/
 Focalmail(1.2)
http://140.120.150.102/focalmail/
回到第一頁
MySQL管理工具

phpMyAdmin
回到第一頁
MySQL管理工具

mysqlgui
 for
linux
(linux-static-x.x.x-x.tar.gz)
 for windows
(linux-win32s-x.x.x.zip)
回到第一頁
其它

我的PHP&MySQL教學網址
http://140.120.150.102/~jyf/891121.htm

Q&A
回到第一頁