解决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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
CURL状态码列表(详细)
Jun 27 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
php实现模拟post请求用法实例
Jul 11 PHP
PHP中Http协议post请求参数
Nov 02 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
深入php中var_dump方法的使用详解
2013/06/24 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
Python单链表的简单实现方法
2014/09/23 Python
python中requests模块的使用方法
2015/04/08 Python
学习python类方法与对象方法
2016/03/15 Python
详解用python实现简单的遗传算法
2018/01/02 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
护士自我鉴定范文
2013/10/06 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
小学教师听课制度
2014/02/01 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
大学新生军训感言
2014/02/25 职场文书
科技活动周标语
2014/10/08 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
关于倡议书的范文
2015/04/29 职场文书
法律进社区活动总结
2015/05/07 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技