解决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 相关文章推荐
分页显示Oracle数据库记录的类之一
Oct 09 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
从wamp到xampp的升级之路
Apr 08 PHP
php动态函数调用方法
May 21 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
PHP常用的三种设计模式
Feb 17 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
php用xpath解析html的代码实例讲解
Feb 14 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防注入,表单提交值转义的实现详解
2013/06/10 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php绘制一个矩形的方法
2015/01/24 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
JS文字球状放大效果代码分享
2015/08/19 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
深入理解node.js http模块
2018/01/24 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
Python中的条件判断语句基础学习教程
2016/02/07 Python
python实现决策树分类算法
2017/12/21 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
python实现列表的排序方法分享
2019/07/01 Python
Django组件content-type使用方法详解
2019/07/19 Python
python实现文件的分割与合并
2019/08/29 Python
python 绘制国旗的示例
2020/09/27 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
小学信息技术教学反思
2014/02/10 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书