解决PHP在DOS命令行下却无法链接MySQL的技术笔记


Posted in PHP onDecember 29, 2010

正好今天朋友 xjb 也碰到了这个问题,所以写了这篇笔记,将此问题的描述以及解决记录下。
问题描述:用 web 方式, 可以链接 mysql, 但是在命令行下, 却提示:

Fatal Error: undefined function mysql_connect()

环境: Windows 2003, PHP 5.2.0, MYSQL 5.0, Apache 2.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, 执行正常, 显示"连接成功".

但用 dos command 命令行的方式调用 d:/php/php.exe test.php 却显示连接失败, 错误信息为: Fatal Error: undefined function mysql_connect()

很显然, 在 dos command 命令行的环境下,mysql 的模块没有被调用。方法弄尽, 仍无法解决. 百思不得其解. 后来, 用写了个脚本, 看看 php 的配置, 在两个环境下有什么不同:
test.php

<? 
echo phpinfo(); 
?>

仔细查看两个环境下 phpinfo() 输入的 php 配置信息,终于发现了问题所在:
Web 方式 http://localhost/test.php 方式调用时, 其 Configuration File (php.ini) Path 显示为 C:WINDOWSphp.ini。
DOS COMMAND 命令行方式 d:/php/php.exe test.php 调用时, 其 Configuration File (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 文件重命名或删除,以免造成在不同环境下执行时,查找配置文件不一致的情况发生。问题发生的原因一般都是非常非常简单,但查找、排除问题的过程,却是相当的烦人。

PHP 相关文章推荐
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
php错误级别的设置方法
Jun 17 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
Aug 15 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 #PHP
php防攻击代码升级版
Dec 29 #PHP
php 传值赋值与引用赋值的区别
Dec 29 #PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 #PHP
服务器web工具 php环境下
Dec 29 #PHP
php cookie的操作实现代码(登录)
Dec 29 #PHP
PHP 图片文件上传实现代码
Dec 29 #PHP
You might like
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
Terran兵种介绍
2020/03/14 星际争霸
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python实现kMeans算法
2017/12/21 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
对Python函数设计规范详解
2019/07/19 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
经济管理专业毕业生推荐信
2013/11/11 职场文书
商场总经理岗位职责
2014/02/03 职场文书
房屋出租协议书
2014/04/10 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
Java无向树分析 实现最小高度树
2022/04/09 Javascript
Spring Boot 实现 WebSocket
2022/04/30 Java/Android