解决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实现框架(一)
Oct 09 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
Feb 27 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
destoon常用的安全设置概述
Jun 21 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
非常实用的php验证码类
May 15 PHP
php正则判断是否为合法身份证号的方法
Mar 16 PHP
php实现评论回复删除功能
May 23 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 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
php 全局变量范围分析
2009/08/07 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php json转换相关知识(小结)
2018/12/21 PHP
javascript 定义新对象方法
2010/02/20 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
python中如何使用朴素贝叶斯算法
2017/04/06 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Python中如何导入类示例详解
2019/04/17 Python
python实现FTP循环上传文件
2020/03/20 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
网络编辑岗位职责范本
2014/02/10 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
党支部对转正的意见
2015/06/02 职场文书
环保守法证明
2015/06/24 职场文书
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript