使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command
Posted noitanym
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command相关的知识,希望对你有一定的参考价值。
第一个问题: PDO not found 是因为 php没有安装pdo扩展, 无法提供给 php 以 数据库访问功能, 所以 报错是在文件: Think/Db.class.php的里面.
解决方法是: 给 php安装 PDO 扩展: dnf install php-pdo
这时 再看 就可以 在 默认 自动 加载的modules目录 中 看到: /usr/lib/php/modules pdo.so这个共享库
安装好 pdo后, 又出现了 没有定义 mysql_attr_init_command 这个常量的错误, 是因为 虽然php可以访问数据库了, 但是默认的只提供了 pdo_mysqli.so的访问接口, 没有提供 访问 mysql的接口, 所以 这个时候, 还要 安装 php访问 mysql数据库的 动态链接库: 是 php-mysqlnd 这个包:
dnf install php-mysqlnd
其中 mysqlnd: 是 mysql native driver (mysql数据库的 本地驱动)
这个包提供了 mysql.so, mysqlnd.so, pdo_mysql.so 三个共享库.
这样 就可以让 php access and manipulate mysql database了.
Mysql Native驱动(Mysql Native Driver 简称:mysqlnd )在PHP5.3.0版本中被引入。PHP5.4之后的版本mysqlnd被作为默认配置选项。 由zend 公司开发的MySQL数据库驱动,采用PHP开源协议(即 PHP license)避免了任何可能存在的版权问题。mysqlnd提供了和Zend引擎高度的集成性,更加快速的执行速度,更少的内存消耗,利用了PHP的Stream API,以及客户端缓存机制。由于mysqlnd是透过Zend引擎,因此提供更多高级特性,以及有效利用Zend进行加速。
参考:https://blog.csdn.net/misakaqunianxiatian/article/details/52079918
安装好这些后, 要重启httpd服务!
linux vim如何在编辑模式下 显示 窄细线!
以上是关于使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command的主要内容,如果未能解决你的问题,请参考以下文章