使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command 和call an undefined function Think\Template\simpleXml_load_string()函数

第一个问题: 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

tp3.2.3 在使用 include 包含语句, 包含模块的时候, 提示: Call to undefined function Think\simplexml_load_string()?

是因为php没有安装 相应的模块去访问 xml. 所以需要 安装 php-xml模块.
dnf install php-xml 然后重新启动httpd服务.

安装好这些后, 要重启httpd服务!

posted @ 2019-01-23 23:19  noitanym  阅读(488)  评论(0编辑  收藏  举报