2014-05-18 74 views
2

這是我目前可以看到的內容:Mysqli連接究竟是什麼?

MySQL服務器正在運行,這是一個監聽端口的應用程序(我目前還沒有100%清除)。

服務器解析PHP代碼,其中一部分包括髮送輸入到MySQL服務器(它是通過特定端口(代碼寫入的mysqli類?)一個完全獨立的程序,

然後返回輸出,所述mysqli的類解釋?這些消息被解釋爲錯誤,或已建立的連接,或者成功的查詢,等等?

這是MySQL的/ PHP通信的一個合理的正確的看法?

+1

你讀過HTTP返回PHP的輸出到瀏覽器的響應:// WWW。 php.net/manual/en/mysqli.overview.php?它提供了關於MYSQL如何與PHP協同工作的很好的信息。 –

回答

5

MySQL是其運行的程序堅持在某個地方的後臺並管理數據存儲通過套接字連接向外部世界發送接口,在接口上接受SQL查詢,以提示它存儲新數據或返回現有數據。要連接到此套接字並通過它發送SQL查詢,您需要說出MySQL期望的特定協議;這只是技術細節,如何通過該套接字與MySQL進行對話。 mysqli是可以說這種協議的PHP庫之一,因此提供了PHP代碼的一種方法,可以在SQL查詢中與MySQL交談,從而將套接字協議的細節抽象出來。 mysql庫(現在已過時並且已棄用)和PDO可以做同樣的事情,它們只是在PHP端看起來不同(即它們的PHP代碼接口與mysqli不同)。

的(主要是)完整的鏈條是:

  • 瀏覽器通過HTTP-過TCP套接字說話的Web服務器
  • Web服務器負載PHP模塊加載並執行代碼
  • 代碼指示PHP mysqli模塊建立與MySQL的套接字連接
  • 您的代碼指示mysqli通過建立的連接向MySQL發送SQL查詢(SQL-over-TCP套接字或SQL-over-UNIX套接字)
  • 你的代碼做任何與結果呢,吐出到Web服務器
  • Web服務器在開放的HTTP連接