Sivo 悉见

ThinkPHP Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

匿名 · 更新于 2017/7/2

问题:

Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
错误位置

FILE: /usr/local/apache/htdocs/wechat/ThinkPHP/Library/Think/Db/Driver/MySQL.class.PHP  LINE: 36

解决方案:

 

1、进入php源代码目录:# cd /home/kxzl/tools/php-5.6.30/
2、再进入要添加的pdo_mysql扩展源码目录:# cd ext/pdo_mysql/
2、调用已经编译好的php里面的phpize:# /application/php/bin/phpize
3、然后configure:#./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/application/mysql
   (/application/mysql 为mysql的安装目录)
4、make && make install
5、编译之后,自动把pdo_mysql.so放到了默认的php扩展目录下,我的为 /application/php-5.6.30/lib/php/extensions/no-debug-non-zts-20131226

(phpinfo可查看或者执行命令/application/php/bin/php-config --extension-dir )

再修改php.ini 找到extension_dir 默认路径为 extension_dir="./" ,去掉前边的分号,我修改后才启动加载的
将其修改为
extension_dir=/application/php-5.6.30/lib/php/extensions/no-debug-non-zts-20131226

在其下面添加extension=pdo_mysql.so保存php.ini即可
然后重启php-fpm、重启Nginx就解决了

 

 

extension = pdo_mysql.so