首頁 後端開發 php教程 apache php mysql php與php MySQL 之間的關係

apache php mysql php與php MySQL 之間的關係

Jul 29, 2016 am 08:40 AM

本教學不想讓你完全了解這種語言,只是能讓你盡快加入開發動態web網站的行列。我假定你有一些HTML(或HTML編輯器)的基本知識和一些程式設計想法。
簡介
PHP 是能讓你產生動態網頁的工具之一。 PHP 代表:超文本預處理器(PHP:Hypertext Preprocessor)。 PHP 是完全免費的,不用花錢,可以從PHP 官方網站(http://www.php.net)自由下載。 PHP 遵守GNU 公共許可(GPL),在這項許可下誕生了許多流行的軟體諸如Linux和Emacs。你可以不受限制的取得原始碼,甚至可以從中加進你自己需要的特色。 PHP 在大多數Unix 平台,GUN/Linux和微軟Windows平台上都可以運作。如何在Windows環境的PC 機器或Unix機器上安裝PHP 的資料可以在PHP 官方網站上找到,也可以查閱網頁陶吧的「PHP 安裝全攻備」專題文章。安裝過程很簡單。
如果你的機器解決了2000問題,那麼PHP 也一樣沒有千年蟲問題!
歷史
三年前,Rasmus Lerdorf為了創建他的線上履歷而創造了"個人主頁工具"(Personal Home Page Tools)。這是一種非常簡單的語言。其後越來越多的人們注意到了這種語言並對其擴展提出了各種建議。在許多人的無私奉獻下以及這種語言本身的源代碼自由性質,它演變成為一種特點豐富的語言,而且現在還在成長中。
PHP 雖然很容易學習,但是速度上比mod_perl(植入web伺服器的perl模組)慢。現在有了可以與mod_perl 速度想媲美的被稱作Zend 的新引擎,而PHP4 就可以充分利用這個引擎。現在,PHP4 正式版已經發布,大家可以到php 的官方網站去下載。 Andy Gutmans 和Zeev Suraki 是Zend 的主要作者。可以去Zend 網站(http://www.zend.com)了解更多。
PHP 的應用在個人性質的web工程中增長顯著。根據Netcraft在1999 年10月的報告,有931122個域和321128 個IP 位址利用PHP 技術。
PHP 的先進之處
應用PHP 有許多好處。當然已知的不利之處在於PHP 由於是開放原始碼項目,沒有什麼商業支持,並且由此而帶來的執行速度緩慢(直到PHP4 之前)。但是PHP 的郵件列表很有用而且除非你正在運行像Yahoo!或者Amazon.com 這樣的極受歡迎的站點,你不會感覺出PHP 的速度與其他的有什麼不同。最起碼我就沒有感覺出來!好了,讓我們來看看PHP 有那些優點:
學習過程
我個人比較喜歡PHP 的非常簡單的學習過程。與Java和Perl 不同,你不必把頭埋進100 多頁的文檔中努力學習才可以寫出一個像樣的程式。只要了解一些基本的文法和語言特色,你就可以開始你的PHP 編碼之旅了。之後你在程式設計過程中如果遇到了什麼麻煩,還可以再去翻閱相關文件。
PHP 的語法類似C,Perl,ASP 或JSP。對於那些對上述語言的語言較熟悉的人來說,PHP 太簡單了。相反的,如果你對PHP 了解較多,那麼你對於其他幾種語言的學習都很簡單了。
你只需要30分鐘就可以將PHP 的核心語言特點全部掌握,你可能已經非常了解HTML,甚至你已經知道怎樣用編輯設計軟體或手工來製作好看的WEB 網站。由於PHP 程式碼能夠無障礙的加入你的站點,在你設計和維護站點的同時,你可以很輕鬆的加入PHP 使得你的站點更加具有動態特性。
資料庫連線
PHP 可以編譯成具有與許多資料庫連結的函數。 PHP 與MySQL是現在的絕佳組合。你也可以自己寫外圍的函數取間接存取資料庫。透過這樣的途徑當你更換使用的資料庫時,可以輕鬆的更改編碼以適應這樣的變化。 PHPLIB就是最常用的可以提供一般事務所需的一系列基庫。
可擴展性
就像前面說的那樣,PHP 已經進入了一個高速發展的時期。對於一個非程式設計師來說為PHP 擴充附加功能可能會比較難,但是對於一個PHP 程式設計師來說並不困難。
物件導向程式設計
PHP 提供了類別和物件。基於web的程式設計工作非常需要物件導向程式設計能力。 PHP支援建構器、提取類別等。
可擴展性
傳統上網頁的交互作用是透過CGI來實現的。 CGI程式的伸縮性不很理想,因為它為每一個正在執行的CGI程式開啟一個獨立進程。解決方法就是將常用來寫CGI程式的語言的解釋器編譯進你的web伺服器(比如mod_perl,JSP)。 PHP 就可以以這種方式安裝,雖然很少人願意這樣以CGI方式安裝它。內嵌的PHP 可以具有更高的可伸縮性。
更多特點
PHP 的開發者們為了更適合web編程,開發了許多外圍的流行基庫,這些庫包含了更易用的層。你可以利用PHP 連線包括Oracle,MS-Access,Mysql在內的大部分資料庫。你可以在蒼蠅上畫圖,寫程式下載或顯示e-mail。你甚至可以完成網路相關的功能。最好的是,你可以選擇你的PHP 安裝版本需要哪些功能。引用Nissan 的Xterra 的話來說就是PHP 可以做到你想讓它做到的一切而且無所不能!
MySQL簡介
MySQL是一個廣受Linux社群中人們喜愛的半商業的資料庫。 MySQL是可運作在大多數的Linux平台(i386,Sparc,etc),以及少許非Linux甚至非Unix平台。
授權費用
MySQL的普及很大程度上源自於它的寬鬆,除了略顯不尋常的授權費用。 MySQL的價格隨平台和安裝方式而變化。 MySQL的Windows版本(NT和9X)在任何情況下都不免費,而任何Unix變種(包括Linux)的MySQL如果由用戶自己或系統管理員而不是第三方安裝則是免費的,第三方案莊則必須付許可費。
價格
平台安裝方式價格
Windows NT,9X 任何200美元
Unix或Linux 自行安裝免費
Unix或Linux 第三方安裝200美元
需要一個應用組件200美元
可以得到多種支援合同,內容太多不再羅列,最新報價可諮詢MySQL站點。
3、安裝
可以在MySQL網站上取得大多數主要的軟體包格式(RPM、DBE、TGZ),客戶端程式庫和各種語言「包裝」(Wrapper)可以分開的RPM格式取得。 RPM格式的安裝並沒有太大麻煩,而且無需初始配置。在rc3.d(以RedHat RPM為例)產生初始腳本,故MySQL守護程式在多使用者模式下重新啟動時被啟動執行。 MySQL的守護程序(mysqld)消耗很少的記憶體(在運行RedHat 5.1的奔騰133上,每個守護程序使用500K記憶體和另外4M共享記憶體的開銷)並在只有在執行真正的查詢時才裝載到處理在器上,這意味著對小型資料庫來說,MySQL可以相當輕鬆地使用而不會對其他系統功能有太大的影響。
資料型別
欄位支援大量資料型別是件好事。通常的整數、浮點數、字串和數字均以多種長度表示,並支援變長的BLOB(Binary Large OBject)類型。對整數欄位由自動增量選項,日期時間欄位也能很好的表示。
MySQL與大多數其他資料庫系統不同的是提供兩個相對不常用的欄位類型:ENUM和SET。 ENUM是一個枚舉類型,非常類適於Pascal語言的枚舉類型,它允許程式設計師看到類似'red、'green'、'blue'的欄位值,而MySQL只將這些值儲存為一個字節。 SET也是從Pascal借用的,它也是一個枚舉類型,但一個單獨字段一次可存儲多個值,這種存儲多個枚舉值的能力也許不會給你一些印象(並可能威脅第三範式定義),但正確使用SET和CONTAINS關鍵字可以省去很多表連接,能獲得很好的效能提升。
5、SQL相容性
MySQL包含一些與SQL標準不同的轉變,他們的大多數被設計成是對SQL語言腳本語言的不足的一種補償。然而,另一些擴展確實使 MySQL與眾不同,例如,LINK子句搜尋是自動地忽略大小寫的。 MySQL 也允許使用者自訂的SQL函數,換句話說,一個程式設計師可以編寫一個函數然後整合到MySQL中,並且其表現的與任何基本函數如SUM()或AVG ()沒有什麼不同。函數必須被編譯道一個共享庫檔案中(.so檔),然後用一個LOAD FUNCTION指令裝載。
它也缺乏一些常用的SQL功能,沒有子選擇(在查詢中的查詢)。視圖(View)也沒了。當然大多數子查詢可以用簡單的連接(join)子句重寫,但有時用兩個嵌套的查詢思考問題比一個大連接容易。同樣,視圖僅為程式設計師隱藏where子句,但這正是程式設計師們期望的另一種便利。
預存程序和觸發器
MySQL沒有一種預存程序(Stored Procedure)語言,這是對習慣於企業級資料庫的程式設計師的最大限制。多語句SQL指令必須透過客戶方程式碼來協調,這種情況是藉助於相當健全的查詢語言和賦予客戶端鎖定和解鎖表的能力,這樣才允許的多語句運行。
7、參考完整性(Referential Integrity-RI)
MySQL的主要的缺陷之一是缺乏標準的RI機制;然而,MySQL的創造者也不是對其用戶的願望置若罔聞,並且提供了一些解決辦法。其中之一是支援唯一索引。 Rule限制的缺乏(在給釘字段域上的一種固定的範圍限制)通過大量的資料類型來補償。不簡單地提供檢查約束(一個字段相對於同一行的另一個字段的之值的限制)、外部關鍵字和經常與RI相關的“級聯刪除”功能。有趣的是,當不支援這些功能時,SQL分析器會容忍這些語句的句法。這樣做目的是易於移植資料庫到MySQL中。這是一個很好的嘗試,並且它確實未來支持該功能留下方便之門;然而,那些沒有仔細閱讀文檔的人可能誤以為這些功能實際上是存在的。
7、安全性
自始至終我對MySQL最大的抱怨是其安全系統,它唯一的缺點是複雜而非標準,另外只有到調用mysqladmin來重讀用戶權限時才發生改變。通常的SQL GRANT/REVOKE 語句到最近的版本才被支持,但至少他們現在有了。 MySQL的編寫者廣泛地記載了其特定的安全性系統,但是它確實需要一條可能是別無它法的學習過程。
apache+php+mysql是最好的搭配,也是搭配企業網絡的最好的搭配、 ​​
如果學php,那麼你可以在網絡中找尋到很多的教程的,其實學任何的程序最好的就是寫,不停的寫不停的看。
作網站當然最好的是dreamweaver,它可以寫很多的程式碼的,也可以設計!

以上就介紹了apache php mysql php與php MySQL 的關係,包含了apache php mysql方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話如何劫持工作,如何在PHP中減輕它? 會話如何劫持工作,如何在PHP中減輕它? Apr 06, 2025 am 12:02 AM

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

描述紮實的原則及其如何應用於PHP的開發。 描述紮實的原則及其如何應用於PHP的開發。 Apr 03, 2025 am 12:04 AM

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試? 在PHPStorm中如何進行CLI模式的調試? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章討論了框架中的基本安全功能,以防止漏洞,包括輸入驗證,身份驗證和常規更新。

如何在系統重啟後自動設置unixsocket的權限? 如何在系統重啟後自動設置unixsocket的權限? Mar 31, 2025 pm 11:54 PM

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

See all articles