解决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 header 跳转
Jun 17 PHP
PHP小技巧之函数重载
Jun 02 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
Yii框架分页实现方法详解
May 20 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 PHP
禁止直接访问php文件代码分享
May 05 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电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
两个php日期控制类实例
2014/12/09 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
DEFER怎么用?
2006/07/01 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
python实现的简单文本类游戏实例
2015/04/28 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
python动态网页批量爬取
2016/02/14 Python
python3下实现搜狗AI API的代码示例
2018/04/10 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Python控制Firefox方法总结
2019/06/03 Python
Python中函数参数匹配模型详解
2019/06/09 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
历史专业毕业生的自我鉴定
2013/11/15 职场文书
学校采购员岗位职责
2014/01/02 职场文书
保密普查工作实施方案
2014/02/25 职场文书
物业经理自我鉴定
2014/03/03 职场文书
企业出纳岗位职责
2014/03/12 职场文书
环境保护建议书
2014/08/26 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js