Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL本机驱动程序和MySQL客户端库有什么不同_Php_Mysql_Mysqli_Mysqlnd - Fatal编程技术网

Php MySQL本机驱动程序和MySQL客户端库有什么不同

Php MySQL本机驱动程序和MySQL客户端库有什么不同,php,mysql,mysqli,mysqlnd,Php,Mysql,Mysqli,Mysqlnd,我想知道MySQL本机驱动程序和MySQL客户端库之间的区别,以及何时使用这两个库在PHP语言级别上没有太大区别 libmysqlclient由MySQL分发,mysqlnd由PHP分发 libmysqlclient是MySQL的一部分,您需要安装MySQL库 他们的执照不一样 mysqlnd支持很多插件(mysqlnd\u ms&mysqlnd\u qc&…) 因为mysqlnd是PHP的一部分,所以它的内存可能会受到PHP配置的限制 mysqlnd是5.4之后的默认值 mysql: 双

我想知道MySQL本机驱动程序和MySQL客户端库之间的区别,以及何时使用这两个库

在PHP语言级别上没有太大区别

  • libmysqlclient由MySQL分发,mysqlnd由PHP分发
  • libmysqlclient是MySQL的一部分,您需要安装MySQL库
  • 他们的执照不一样
  • mysqlnd支持很多插件(mysqlnd\u ms&mysqlnd\u qc&…)
  • 因为mysqlnd是PHP的一部分,所以它的内存可能会受到PHP配置的限制
  • mysqlnd是5.4之后的默认值

mysql

  • 双重执照
  • 可选自动重新连接
  • 所有内存分配和释放都使用操作系统内存管理完成
mysqlnd

  • PHP许可证
  • 非阻塞异步查询
  • (,)
  • LOAD LOCAL INFLE遵循open_basedir指令
  • 所有内存分配和释放都是使用PHP内存管理函数完成的(您可以使用和跟踪内存使用情况,也可以使用PHP内存限制,这有其优点和缺点)
mysqlnd通过插件:

  • 故障转移
  • 惰性连接
  • ,
  • 透明查询操作(自动解释)
mysql和mysqlnd之间的不兼容:

  • bit数据类型的值在mysql.so中以二进制字符串的形式返回,在mysqlnd.so()中以十进制字符串的形式返回

基于此文档和其他文档:

您是否尝试将鼠标悬停在mysqlnd标记上?或者甚至试着用谷歌搜索这个?我阅读了这两个页面,但仍然不知道我使用的代码有哪些不同,比如“$mysqli=newmysqli”(“localhost”、“root”、“peter”)或die(LINE”)“$mysqli->connect\u error”;”“但是我不知道这是什么样的code@robert:MySQLnd(和MySQL客户端库)是提供
mysqli
函数的PHP扩展(驱动程序)。这两种代码都可以使用,那么有什么区别呢