解决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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
发挥语言的威力--融合PHP与ASP
Oct 09 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
php正则表达式学习笔记
Nov 13 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php如何把表单内容提交到数据库
Jul 08 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
重置版宣传动画
2020/04/09 魔兽争霸
php上传、管理照片示例
2006/10/09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
jquery如何获取复选框的值
2013/12/12 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
Python 创建子进程模块subprocess详解
2015/04/08 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
校园广播稿500字
2014/02/04 职场文书
运动会口号大全
2014/06/07 职场文书
住房租房协议书
2014/08/20 职场文书
学习三严三实心得体会
2014/10/13 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
初中班主任心得体会
2016/01/07 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书