解决PHP在DOS命令行下却无法链接MySQL的技术笔记

2015-01-24信息快讯网

前段时间,由于要用 php 进行 Shell 编程时,碰到了 PHP 在 WEB 下可以连接 MySQL 而在 DOS COMMAND 命令行下却连接失败的问题。

正好今天朋友 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中邮箱地址正则表达式实现与详解
PHPMYADMIN导入数据最大为2M的解决方法
php 多关键字 高亮显示实现代码
php入门之连接mysql数据库的一个类
洪恩在线成语词典小偷程序php版
php和mysql中uft-8中文编码乱码的几种解决办法
MySQL的FIND_IN_SET函数使用方法分享
simplehtmldom Doc api帮助文档
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
mysql总结之explain
php&mysql 日期操作小记
php模拟post行为代码总结(POST方式不是绝对安全)
在WINDOWS中设置计划任务执行PHP文件的方法
php中使用DOM类读取XML文件的实现代码
php中$_REQUEST、$_POST、$_GET的区别和联系小结
防止本地用户用fsockopen DDOS攻击对策
php中模拟POST传递数据的两种方法分享
php中使用Curl、socket、file_get_contents三种方法POST提交数据
PHP+SQL 注入攻击的技术实现以及预防办法
window+nginx+php环境配置 附配置搭配说明
php防攻击代码升级版
php 传值赋值与引用赋值的区别
服务器web工具 php环境下
php cookie的操作实现代码(登录)
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
PHP与MySQL开发的8个技巧小结
php数据入库前清理 注意php intval与mysql的int取值范围不同
PHP访问MYSQL数据库封装类(附函数说明)
Mysql数据库操作类( 1127版,提供源码下载 )
PHP程序员最常犯的11个MySQL错误小结
Windows 下的 PHP-PEAR 安装方法
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
windows下升级PHP到5.3.3的过程及注意事项
windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
php 模拟POST|GET操作实现代码
php下使用strpos需要注意 === 运算符
php 使用post,get的一种简洁方式
PHP CURL模拟GET及POST函数代码
©2014-2024 dbsqp.com