之前因为比较懒,就装了PHPnow,PHP版本是5.2,最近因为要学thinkPHP框架,由于用的是thinkPHP3.2,需要PHP5.3以上版本才能跑起来,就手动更新了PHP版本,更新到了5.3.5,并按照正常步骤配置了php.ini文件,打开了(extension_dir = "\ext"
extension=php_mysql.dll;
extension=php_mysqli.dll;)等模块,重启Apache,运行了一下之前写的练手项目,但只要和数据库连接有关的,都报了如下这个错误(Fatal error: Call to undefined function mysql_connect() in E:\php\htdocs\wangshangshudian\login.php on line 7),但是我都把php.ini相应和MySQL有关的模块都打开了,怎么还是这个问题呢,我就郁闷了,并且thinkPHP也出现了如下错误::(
系统不支持:mysql
错误位置
FILE: E:\php\htdocs\demo\ThinkPHP\Library\Think\Db\Driver\Mysql.class.php LINE: 27
TRACE
#0 E:\php\htdocs\demo\ThinkPHP\Library\Think\Db\Driver\Mysql.class.php(27): E('???????????????...')
#1 E:\php\htdocs\demo\ThinkPHP\Library\Think\Db.class.php(90): Think\Db\Driver\Mysql->
construct(Array)
#2 E:\php\htdocs\demo\ThinkPHP\Library\Think\Db.class.php(65): Think\Db->factory('')
#3 E:\php\htdocs\demo\ThinkPHP\Library\Think\Model.class.php(1287): Think\Db::getInstance('')
#4 E:\php\htdocs\demo\ThinkPHP\Library\Think\Model.class.php(95): Think\Model->db(0, '', true)
#5 E:\php\htdocs\demo\ThinkPHP\Common\functions.php(554): Think\Model->
construct('user', '', '')
#6 E:\php\htdocs\demo\Application\Home\Controller\DBController.class.php(6): M('user')
#7 [internal function]: Home\Controller\DBController->index()
#8 E:\php\htdocs\demo\ThinkPHP\Library\Think\App.class.php(155): ReflectionMethod->invoke(Object(Home\Controller\DBController))
#9 E:\php\htdocs\demo\ThinkPHP\Library\Think\App.class.php(193): Think\App::exec()
#10 E:\php\htdocs\demo\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#11 E:\php\htdocs\demo\ThinkPHP\ThinkPHP.php(96): Think\Think::start()
#12 E:\php\htdocs\demo\index.php(24): require('E:\php\htdocs\d...')
#13 {main}
在重新梳理了PHP配置过程后,发现了其中两处配置问题1.忘记将libmysql.dll至windows目录下的system32下 2.(最重要的错误)由于更新PHP版本之后,忘记修改了Apache文件下的conf下的http.conf中的PHPINDir "../", 将其PHPINDir的目录修改为更新后的PHP的版本目录,再重启Apache后,原来出现的这个错误(Fatal error: Call to undefined function mysql_connect() in E:\php\htdocs\wangshangshudian\login.php on line 7)不在出现了,连接MySQL数据库正常
这里在附上关于PHPnow中版本如何更新的问题
1,将下载的PHP版本解压至phpnow的安装目录,命名不能有中文,建议直接“php5.X”(X指版本号)就可以了。 2,将“php-5.2.14-Win32/php-apache2handler.ini”复制到“php5.X中”。 3,修改apache配置文件“Apache-**/conf/httpd.conf”,“LoadModule php5_module "../php-5.2.14-Win32/php5apache2.dll"
PHPINIDir "../php-5.2.14-Win32/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
”将其中的php-5.2.14-Win32修改为“php5.X”。 4,再修改“php5.3/php-apache2handler.ini”文件,搜索“extension_dir =”,将后边的“php-5.2.14-Win32”修改为“php5.X”。
5,将libmysql.dll至windows目录下的system32下 6,再回到根目录运行“PnCp.cmd”,输入“23”-回车,重启下apache就可以了。 以上目录说明:“php5.X”为第二步的解压目录,而“php-5.2.14-Win32”是原PHP5.2的目录。