網頁與資料庫整合運用 - 以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 回到第一頁
© Copyright 2024 ExpyDoc