将PHP与数据库系统接口的PHP库如何实际调用数据库?

永恒的

我一直在查看GitHub上的Predis代码,而且代码庞大,因此仅查看代码对我来说有点困难,因为我不了解每个文件夹/文件的用途

我想知道的是,在使用MySQL或Redis或任何其他数据库系统时,PHP实际上如何与数据库联系?它是否使系统调用类似于您使用C进行的操作,system("some command here");还是开发人员必须实际扩展PHP语言的编译器才能做到这一点?

您不必“扩展编译器”,但是您必须做这可能意味着的事情:用C编写一个PHP模块/扩展与数据库的(通常是)C库API对话。这意味着什么?数据库通常带有连接器库,这些连接器库通常以低级C编写,因此提供了基于C的API。它或多或少的工作方式类似于include 'api.php',然后允许您调用刚刚包含的任何功能,但它特定于C。PHP代码无法直接与C代码对话,但是用C编写的PHP扩展可以充当两者之间的“桥梁”。 PHP代码和C API。

然后,该C库具有许多选择,使其可以与实际数据库通信。它可以直接与数据库的另一个C API通信,尽管这不一定是典型的。通常使用UNIX套接字或TCP套接字,如果数据库位于另一台计算机上,则有时跨网络使用。如果愿意,可以直接通过PHP代码与该UNIX / TCP套接字通信,但这意味着您必须重新实现整个协议才能以PHP代码与数据库通信。这通常效率很低,因为PHP是一种高级语言,并且不提供对内存等原始计算机资源的任何直接访问,这使得该实现效率很低。

因此,通常的方式是:

  • 数据库提供了通过某种套接字与之对话的协议
  • 官方协议客户端在C库中实现,因为它高效且可移植
  • 有人写了一个PHP扩展来将该C库API桥接到PHP用户区代码中

没有什么可以阻止您在替代客户端中以其他语言实现该协议的,但是由于这通常是一个繁琐的过程,并且C是一个广泛使用的系统,因此人们通常最终会在现有的官方C库周围编写包装器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据库系统添加到WebGL应用程序

来自分类Dev

PHP数据库连接-多次调用

来自分类Dev

如何将PHP会话数据保存到数据库而不是文件系统中?

来自分类Dev

如何将数据从PHP插入MySQL数据库

来自分类Dev

如何有效创建跨平台的1000多个条目数据库系统?

来自分类Dev

如何从Windows应用程序使用不同的数据库系统

来自分类Dev

将MYSQL PHP插入数据库

来自分类Dev

如何从数据库PHP使用整数

来自分类Dev

如何使用php重置数据库

来自分类Dev

PHP数据库建议

来自分类Dev

从PHP插入数据库

来自分类Dev

PHP更新数据库

来自分类Dev

PHP MySQL数据库

来自分类Dev

PHP数据库angularjs

来自分类Dev

如何从PHP将Excel文件导入mysql数据库

来自分类Dev

如何将数组放入数据库(php,pdo)?

来自分类Dev

如何使用 node.js 从两个不同的数据库系统中检索数据?

来自分类Dev

如何使用两个数据库系统(MongoDB/Postgres)在网站中存储不同的数据

来自分类Dev

关系数据库系统中使用的数据结构

来自分类Dev

关系数据库系统中使用的数据结构

来自分类Dev

如何设计博客系统数据库?

来自分类Dev

发送数据到PHP数据库

来自分类Dev

PHP Session从数据库获取数据

来自分类Dev

在php中将数据插入数据库

来自分类Dev

通过php从数据库上传数据

来自分类Dev

PHP从SQL数据库读取数据

来自分类Dev

PHP从数据库中获取数据

来自分类Dev

PHP Dropdown从数据库加载数据

来自分类Dev

PHP从数据库检索数据