解决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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
php递归实现无限分类的方法
Jul 28 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
通过php动态传数据到highcharts
Apr 05 PHP
PHP 中常量的知识整理
Apr 14 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 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
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
理货员的岗位职责
2013/11/23 职场文书
促销活动方案模板
2014/02/24 职场文书
揭牌仪式主持词
2014/03/19 职场文书
3的组成教学反思
2014/04/30 职场文书
环保倡议书怎么写
2014/05/16 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
工作简报范文
2015/07/21 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers