国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle 和 PHP 使用入門

2024-08-29 13:41:09
字體:
供稿:網(wǎng)友

  Oracle 是一個(gè)用于構(gòu)建基于 Web 的應(yīng)用程序的強(qiáng)大數(shù)據(jù)庫。php 以快速和高效著稱;它能夠幫助您構(gòu)建不會加重您的數(shù)據(jù)庫負(fù)擔(dān)的快速應(yīng)用程序。將 Oracle 與 PHP 結(jié)合,您就獲得了一個(gè)強(qiáng)大的動力組合。
  
  PHP(超文本預(yù)處理器的縮寫)已飛速發(fā)展成最流行的 Web 編程語言之一。 (據(jù) netcraft.com 稱,Apache 占據(jù)了整個(gè) Web 服務(wù)器市場的 55%,而 PHP 聲稱占所有 Apache 服務(wù)器的 38%。) 它答應(yīng)您快速有效地完成任務(wù),同時(shí)為更復(fù)雜的應(yīng)用提供改進(jìn)的特性,從而能夠成為最流行的編程語言。 由于將效率和低開銷作為它主要的導(dǎo)向,因此它有助于構(gòu)建一些加速的基于 Web 的應(yīng)用程序。 PHP 也是開放源代碼 — 您不需要等供給商來修復(fù)錯(cuò)誤,大量的同行審查將揭露并排除其中的錯(cuò)誤。
  
  PHP 本質(zhì)上是一個(gè)腳本集合 — 很類似于您可能用 Perl 或 Python 編寫的腳本,您可以將它直接嵌入到 Html 頁面中。在這種方式下,HTML 作為頁面的基本框架,而動態(tài) PHP 代碼從您的 Oracle 數(shù)據(jù)庫中取出內(nèi)容和信息。
  
  PHP 與 Oracle 兼容并不是新鮮事;實(shí)際上,Oracle 是除 MySQL 之外可以與 PHP 連接的最早的數(shù)據(jù)庫之一。程序員多年來一直在為 Oracle 構(gòu)建 PHP 應(yīng)用程序,通常的方式是利用 PHP + Oracle 支持來構(gòu)建 Apache。然而,Oracle 為這種組合和為構(gòu)建基于 PHP 的應(yīng)用程序的用戶提供的支持 — 包括 OTN 上的文檔編制,以及為利用 Oracle application Server 安裝 mod_php 而提供的 Metalink 支持,這一切的確是前所未有的。
  
  在即將發(fā)布的 Oracle Application Server 10g 版本中,Oracle 計(jì)劃進(jìn)一步提升這種支持,包括在版本 CD 上提供 PHP,以及將它進(jìn)一步與其它的 Oracle 產(chǎn)品集成在一起。
  
  入門
  在可以使用 PHP 來做任何事情之前,當(dāng)然必須確保已在系統(tǒng)上安裝和運(yùn)行了 PHP。一種快速輕松的方法是編輯文件 test.php,在其中插入這一行:
  
  <?php phpinfo()?>
  
  ……然后將您的瀏覽器指向那個(gè)頁面。例如,假如您的服務(wù)器名為 learningphp.com,您的 URL 可能是 http://learningphp.com/test.php。假如您得到一個(gè) "Not Found" 錯(cuò)誤,則您可能未正確指定文件名、它的路徑或 URL 中的其它內(nèi)容。假如您得到一個(gè) "Forbidden" 錯(cuò)誤,則 web 服務(wù)器在該文件上的權(quán)限可能是不可讀。(這些是基本的 Apache 配置問題;關(guān)于 Apache 配置的更多信息,請參見“接下來的步驟”框。)
  
  您可能碰到的另一個(gè)嚴(yán)重問題是在您的瀏覽器中只看到顯示了以上三行代碼。假如發(fā)生這種情況,則可能 Apache 沒有加載 PHP,或您的 Apache 配置沒有指定加載它。在那種情況下,請查看您的 httpd.conf 文件,并確認(rèn)存在這些行:
  
  AddModule mod_php4.c
  
  <IfModule mod_php4.c>
  AddType application/x-httpd-php4 .php4
  AddType application/x-httpd-php4-source .phps
  
  </IfModule>
  
  假如在作了這些修改并重啟 Apache 之后,您仍不能加載 test.php 文件,則可能需要考慮編譯 Apache 和 PHP — 這個(gè)工作超出了本文的范圍。
  
  當(dāng)您正確地加載了這個(gè)文件時(shí),瀏覽器將顯示各種各樣有用的 PHP + Apache 配置信息。關(guān)于進(jìn)一步微調(diào) PHP 配置的信息,請參考 php3.ini 文件。
  
  一個(gè)簡單的示例
  在我們的第一個(gè)示例中,我將按慣例向您顯示 hello world 程序,并請求服務(wù)器顯示出當(dāng)前的時(shí)間。您將很快了解一段 PHP 代碼如何看起來像是嵌在一個(gè) HTML 頁面內(nèi)的。您還將了解一些簡單的 PHP 函數(shù)的工作方式。
  
  首先,編輯您的文檔根目錄中的名為 hello_world.php3 的文件,并將以下幾行插入到該文件中:
  
  <HTML>
  <TITLE>hello world</TITLE>
  <BODY>
  
  <!—Add comments here —>
  
  <H1>Hello World</H1> <p>
  
  <H2>
  <?php
  $currtime = time ();
  $currtimestr = strftime ("%H:%M:%S", $currtime);
  echo "The current time is:$currtimestr";
  
  ?>
  </H2>
  
  </BODY>
  </HTML>
  
  當(dāng)您完成這一步時(shí),保存該文件并在您的瀏覽器中加載它。
單擊 Reload 幾次,直到您確信時(shí)間被動態(tài)地確定了。
  
  這個(gè)小示例還說明了如何在 PHP 中使用變量:在計(jì)算期間它們可以在內(nèi)部保存值,或者當(dāng)您要把一系列信息集中起來時(shí)可以保存字符串。變量還可以通過 URL 將數(shù)值引入到您的腳本中。
  
  這里是另外一個(gè)例子;保存該代碼示例到 variables.php3:
  
  <HTML>
  <TITLE>First Variables Example</TITLE>
  <BODY>
  
  <?php echo "VALUE IS:$zipcode";?>
  
  </BODY>
  
  </HTML>
  
  現(xiàn)在通過 URL (如 http://myserver.com/variables.php3?zipcode=10003)來調(diào)用頁面。
  
  一個(gè)非常簡單的示例,但您可以看到,在 URL 中使用的變量自動成為您的 PHP 腳本中的變量。稍后我們將看到如何使用 PHP 中的這一特性來為我們帶來好處。
  
  如何使用數(shù)據(jù)庫
  任何快速開發(fā)中等復(fù)雜度的 Web 應(yīng)用程序的人都發(fā)現(xiàn),頁面之間的持續(xù)變量只能短暫地保存信息。這就是要引入數(shù)據(jù)庫的原因;Oracle 已做好了充分的預(yù)備來滿足這種需求。
  
  那么我們?nèi)绾伟?PHP 與 Oracle 結(jié)合在一起?與 PHP 的傳統(tǒng)保持一致,這個(gè)過程非常簡單:提供用戶名和口令以及數(shù)據(jù)庫連接具體資料,您就可以快速地與 Oracle 連接來存儲和檢索數(shù)據(jù)。
  
  例如,假定我們創(chuàng)建了一個(gè)名為 "example" 的表,它有兩列,分別是名和姓。(確保為 Apache user 設(shè)置了 ORACLE_HOME 和 ORACLE_SID。)與 Oracle 數(shù)據(jù)庫連接是一件簡單的事情:
  
  <HTML>
  <TITLE>First Variables Example</TITLE>
  <BODY>
  
  <?php
  $tns = 'sean';
  
  $user = "scott@$tns";
  $pass = 'tiger';
  $q1 = 'SELECT * FROM example';
  $conn = ora_logon($user, $pass);
  
  $mycursor ora_open ($conn);
  ora_parse ($mycursor, $q1, 0);
  ora_exec ($mycursor);
  
  while (ora_fetch($mycursor)) {
  echo "RESULT:ora_getcolumn ($mycursor, 0), ora_getcolumn ($mycursor, 1) <br>";
  }
  ora_close($mycursor);
  ?>
  
  </BODY>
  </HTML>
  
  假如您計(jì)劃使用 PHP 擴(kuò)展的 PEAR 庫(稍后再詳述),那么您應(yīng)該了解一下 PEAR DB。PEAR DB 提供了一個(gè)數(shù)據(jù)庫抽象層,這個(gè)抽象層答應(yīng)您編寫應(yīng)用程序,并且只修改 conntion 描述符來與一個(gè)不同類型的數(shù)據(jù)庫連接(比如說,與 MySQL 上的原型連接并使用 Oracle 進(jìn)行生產(chǎn))。數(shù)據(jù)庫抽象意味著您的應(yīng)用程序不是被束縛在一個(gè)數(shù)據(jù)庫上,而是可以在無數(shù)的數(shù)據(jù)庫上工作。然而,它也意味著您不得不接受特性的最小公分母。因此您的體驗(yàn)可能會有所不同。
  
  特性概述
  條件、循環(huán)和運(yùn)算符
  
  像所有的迭代編程語言一樣,PHP 通過 if/then 語句支持條件。這是一個(gè)語法示例:
  
  if ($a > 100) {
  
  do this...
  } elseif ($a > 50) {
  do that...
  } else {
  do some other thing...
  }
  
  它還通過 switch 或稱為 case 語句來支持類似功能。然后,當(dāng)然有循環(huán),這由條件在最初指定的 WHILE 和在最后指定的 DO...WHILE,以及在一開始指定迭代次數(shù)的 FOR 來支持。例如:
  
  while ($notdone == 0) {
  some code here...
  if (some condition) {
  $notdone = 1;
    }
  
  }
  
  至于運(yùn)算符,您將發(fā)現(xiàn)您所期望的全部,包括用于基本數(shù)學(xué)運(yùn)算的 +、-、*、/,用于求模的 %,和用于比較運(yùn)算的 >、>=、<=、!= 和 <>。 此外還包括了由要害字 AND (&&)、OR () 、XOR、和用于求非的 ! 提供的邏輯運(yùn)算符。 注重 = 是賦值,而 == 是相等比較。 您還可以使用 '.' 運(yùn)算符來連接字符串。 (這些功能大部分和 Perl 和其它腳本語言的功能類似。關(guān)于具體情況,請參見您的 PHP 手冊。)
  
  支持的數(shù)據(jù)類型
  PHP 通過 DEFINE 語句、整數(shù)、浮點(diǎn)值、字符串、不同類型的數(shù)組和面向?qū)ο缶幊讨惺褂玫某橄髮ο箢愋蛠碇С殖A俊.?dāng)您創(chuàng)建了一個(gè)變量時(shí),PHP 根據(jù)它的初始值來設(shè)定類型。例如,假如您給定了一個(gè)值 2,PHP 將創(chuàng)建一個(gè)整數(shù) (2.0)、一個(gè)浮點(diǎn)數(shù) ("2.0") 和一個(gè)字符串。
  
  正則表達(dá)式
  
  PHP 的最出色的特性之一是它為正則表達(dá)式提供的支持。正則表達(dá)式通過 grep、egrep、awk 和使用諸如 sh、csh 和 Perl 之類的語言編寫的腳本在 Unix 中使用。從根本上說,正則表達(dá)式指定一種模式,引擎將對照該模式進(jìn)行比較,以找到字符串內(nèi)容或替換它們(或二者都進(jìn)行)。

  
  例如,假定您有一個(gè) web 表單,其中用戶指定了一個(gè)電子郵件地址,而您想要確認(rèn)它有效。(參見安全性部分來了解為什么檢驗(yàn)表單中的輸入值是如此重要。)這一小段代碼將為您實(shí)現(xiàn)這個(gè)目的:
  
  if (ereg ("^.+@.+//..+$", $inEmail)) {
  do something with your email address...
  ?} else {
  address is invalid, discard and/or return error
  }
  
  Oracle API
  
  因?yàn)槿绱硕嗟幕?Web 的應(yīng)用程

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘谷县| 北流市| 岳阳市| 巴楚县| 商南县| 宾川县| 乐业县| 衡阳县| 海门市| 新泰市| 敦化市| 潍坊市| 定兴县| 新宁县| 信宜市| 自治县| 那坡县| 禹州市| 黄陵县| 乐平市| 阿克| 苍溪县| 尤溪县| 手机| 新泰市| 沙田区| 巨鹿县| 东莞市| 临安市| 重庆市| 江西省| 方山县| 武义县| 石渠县| 连州市| 宁国市| 绍兴县| 威海市| 集贤县| 南部县| 花莲市|