什么是Mysqli连接?

Zac*_*ith 2 php mysql mysqli

这就是我现在可以看到的东西:

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

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

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

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

dec*_*eze 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的输出返回给浏览器