什么是Mysqli连接?

时间:2014-05-18 10:10:58

标签: php mysql mysqli

这是我现在可以想象的:

MySQL服务器正在运行,这是一个侦听端口的应用程序(目前我还不是100%清楚)。

服务器解析PHP代码,其中一部分涉及将输入发送到MySQL服务器(这是一个完全独立的程序,通过特定的端口(在mysqli类中编写的代码?),

然后返回mysqli类解释的输出?并且这些消息被解释为错误,已建立的连接或成功的查询等?

这是一个相当正确的MySQL / PHP通信视图吗?

1 个答案:

答案 0 :(得分:5)

MySQL是一个在后台持续运行并管理数据存储的程序。它通过套接字连接提供与外部世界的接口,它接受SQL查询,提示它存储新数据或返回现有数据。要连接到此套接字并通过它发送SQL查询,您需要说出MySQL期望的特定协议;这只是通过该套接字与MySQL交谈的技术细节。 mysqli是可以说该协议的PHP库之一,因此为PHP代码提供了一种在SQL查询中与MySQL通信的方法,从而抽象出套接字协议的细节。 mysql库(现在已经过时并且已弃用)和PDO可以做同样的事情,它们只是在PHP端“看起来”不同(即它们的PHP代码接口与mysqli不同)。

(大部分)完整的链是:

  • 浏览器通过HTTP-over-TCP-socket
  • 与Web服务器通信
  • Web服务器加载加载并执行代码的PHP模块
  • 您的代码指示PHP mysqli模块建立与MySQL的套接字连接
  • 您的代码指示mysqli通过已建立的连接向MySQL发送SQL查询(SQL-over-TCP-socket或SQL-over-UNIX-socket)
  • 您的代码会对结果执行任何操作,并向Web服务器吐出响应
  • Web服务器通过打开的HTTP连接将PHP的输出返回给浏览器