解决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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
php设计模式小结
Feb 15 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
PHP中实现Bloom Filter算法
Mar 30 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
CentOS 上搭建 PHP7 开发测试环境
Feb 26 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 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 function用法如何递归及return和echo区别
2014/03/07 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
解读Django框架中的低层次缓存API
2015/07/24 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
2020/02/27 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
介绍一下.net和Java的特点和区别
2012/09/26 面试题
学校司机岗位职责
2013/11/14 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
公司活动方案范文
2014/03/06 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
班主任工作实习计划
2015/01/16 职场文书
2015年科室工作总结
2015/04/10 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书