解决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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
PHP4在WinXP下IIS和Apache2服务器上的安装实例
Oct 09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
PHP加密解密实例分析
Dec 25 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
php实现文件预览功能
May 23 PHP
php的常量和变量实例详解
Jun 27 PHP
php+laravel依赖注入知识点总结
Nov 04 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 CURL用法的深入分析
2013/06/09 PHP
php接口技术实例详解
2016/12/07 PHP
php防止sql注入的方法详解
2017/02/20 PHP
jquery 插件学习(四)
2012/08/06 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python三级菜单的实例
2017/09/13 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
python将音频进行变速的操作方法
2020/04/08 Python
详解python中的异常和文件读写
2021/01/03 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
一些PHP的面试题
2015/05/06 面试题
暑期社会实践感言
2014/02/25 职场文书
自我鉴定标准格式
2014/03/19 职场文书
施工安全生产承诺书
2014/05/23 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
2016高考寄语集锦
2015/12/04 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js