解决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中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
PHP中如何定义和使用常量
Feb 28 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 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与XML联手进行网站编程代码实例
2008/07/10 PHP
php二分查找二种实现示例
2014/03/12 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
python获取url的返回信息方法
2018/12/17 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
环保倡议书500字
2014/05/15 职场文书
身边的榜样活动方案
2014/08/20 职场文书
导师鉴定意见
2015/06/05 职场文书
太空授课观后感
2015/06/17 职场文书
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技