解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2023-06-13 09:14:26 时间
正好今天朋友xjb也碰到了这个问题,所以写了这篇笔记,将此问题的描述以及解决记录下。
问题描述:用web方式,可以链接mysql,但是在命令行下,却提示:
FatalError:undefinedfunctionmysql_connect()
环境:Windows2003,PHP5.2.0,MYSQL5.0,Apache2.0
在php.ini中,已经将php_mysql.dll的模块选项给打开了;测试的脚本也很简单,就一个mysql_conect函数,内容如下:
复制代码代码如下:
问题描述:用web方式,可以链接mysql,但是在命令行下,却提示:
FatalError:undefinedfunctionmysql_connect()
环境:Windows2003,PHP5.2.0,MYSQL5.0,Apache2.0
在php.ini中,已经将php_mysql.dll的模块选项给打开了;测试的脚本也很简单,就一个mysql_conect函数,内容如下:
php.ini:
extension=php_mysql.dll
测试脚本test.php内容如下:
text.php
<?
if(!mysql_connect(DBHOST,DBUSER,DBPWD))
{
echo"连接失败!";
exit;
}
echo"连接成功!t";
?>
用web方式调用http://localhost/test.php,执行正常,显示"连接成功".
但用doscommand命令行的方式调用d:/php/php.exetest.php却显示连接失败,错误信息为:FatalError:undefinedfunctionmysql_connect()
很显然,在doscommand命令行的环境下,mysql的模块没有被调用。方法弄尽,仍无法解决.百思不得其解.后来,用写了个脚本,看看php的配置,在两个环境下有什么不同:
test.php
<?
echophpinfo();
?>
仔细查看两个环境下phpinfo()输入的php配置信息,终于发现了问题所在:
Web方式http://localhost/test.php方式调用时,其ConfigurationFile(php.ini)Path显示为C:WINDOWSphp.ini。
DOSCOMMAND命令行方式d:/php/php.exetest.php调用时,其ConfigurationFile(php.ini)Path为d:phpphp.ini。
而在c:windows和d:php目录下, 都存在一个php.ini文件,d:php目录下的php.ini没有将extension=php_mysql.dll模块打开.于是将d:phpphp.ini删除,只保留c:windowsphp.ini,问题解决.
总结:在windows下安装php时, 为了避免配置文件混乱,将安装目录下的php.ini复制到windows目录下之后,应该将原来安装目录下的php.ini文件重命名或删除,以免造成在不同环境下执行时,查找配置文件不一致的情况发生。问题发生的原因一般都是非常非常简单,但查找、排除问题的过程,却是相当的烦人。
相关文章
- MySQL与PHP设置时区(mysql时区php)
- 查询MySQL实现并行与交叉查询技术(mysql并交叉)
- MySQL入门指南:初学者指引(mysql入门教程)
- 轻松实现PHP操控MySQL语句(php执行mysql语句)
- MySQL优化:获取更优性能的方法.(mysql优化方法)
- 从MySQL到PHP:展示表格数据(php显示mysql表)
- Mac 环境下如何安装 MySQL 数据库?(mysql安装mac)
- 掌握MySQL熟练运用命令行补全功能(mysql命令补全)
- php连接Mysql出错:排查与解决(php连接mysql错误)
- 记录PHP之MySQL踩坑:如何防止重复记录(php mysql 重复)
- C语言和MySQL如何配合连接(c vs怎样连mysql)
- MySQL数据库中实现表合并的方法(mysql中2个表合并)
- 用命令行运行MySQL脚本的方法(cmd运行mysql脚本)
- 库在命令行中查看MySQL数据库(cmd显示mysql数据)
- MySQL卸载方法用cmd命令行操作(cmd卸载mysql语句)
- 在命令行下导入MySQL文件(cmd倒mysql文件)
- MySQL分配机制优化,解决分配不均等问题(mysql不均等分配)
- MySQL命令行操作全攻略25字中文教程(mysql下执行命令)