写了一个bat文件,里面有用到php ,执行wiki的 dumpbackup.php命令,奇怪的是bat文件可以顺利执行,而我通过asp.net应用程序来调用这个bat文件的时候,就会出现 MySQL functions missing, have you compiled PHP with the --with-mysql option?
这个错误信息,求教高人,有没有解决的办法~~。。

解决方案 »

  1.   

    PHP中没有加载MySQL模块,参看PHP手册MySQL的安装部分
      

  2.   

    PHP中没有加载MySQL模块,参看PHP手册MySQL的安装部分
      

  3.   

    如果没有加载模块的话,是不是应该bat文件在运行的时候就会提示呢?
    我的现象是bat文件运行很正常,但是一旦通过asp.net 应用程序调用就会出错,最开始的时候是识别不了Php这个命令,然后我在bat里面写了全路径过后,又提示说mysql function missing..
    怪了
      

  4.   

    bat文件执行的php命令的环境未必和你的asp.net的中php的命令环境一致。
      

  5.   

    是的,我也正朝这个方向在查找问题,高手们有没有什么解决的办法?比如说在bat文件里面加上一些命令可以使文件执行的路径无论在任何环境下都有效?
      

  6.   

    我在asp.net里面启动了一个进程,使用cmd来执行这个bat文件。所以这个问题还是挺复杂的最近搞的头都大了,最开始觉得可能是用户帐号的问题,采用了很多方式,使用模拟身份这些方法,得到的结果仍然是失败。。最后写了大量的日志,才发现了问题的症结所在。所以还请高手们帮下忙~看看有没有啥好的解决办法。。
      

  7.   

    你调用同一个php.ini就好了,不要配置多个php站点
      

  8.   

    对于 MySQL functions missing, have you compiled PHP with the --with-mysql option?google说
    MySQL函数失踪,你编译了 - with - mysql选项PHP所用?
      

  9.   

    应该是你用.net的方式执行bat文件时,所调用的php环境和你另一种环境不一致,主要是php加载的php.ini文件不是原来那个了。
    你在bat里用php执行一个phpinfo()的文件。
    如:
    <?
    ob_start();
    phpinfo();
    $string = ob_get_contents();
    //然后再将这个$string 写入到test.html文件里。
    ?>
    执行以后,你打开test.html就看得到,你.net方式调用php时的php环境了,什么地方不对,就改什么地方就是了
      

  10.   


    我是搞.net开发的,刚接触php这玩意,这位老师能不能说的再具体点?麻烦您了~
      

  11.   


    整台服务器上就1个php.ini文件。在windows 根目录下,我查看过,对mysql.dll和mysqli.dll的扩展使用这两个项都是开启了的
      

  12.   


    用echo语句写到输出流里面了,查看发现里面有一条 extension_dir => C:\php5 => C:\php5
    这个和我系统里面的不符,是不是这个原因造成了找不到mysql的扩展?
    如果是的话请问我应该怎么改呢?
      

  13.   

    bat执行PHP文件你会噻???
    就是新建个phpinfo.php文件:
    内容:
    <?php
    ob_start();
    phpinfo();
    $string = ob_get_contents();
    $filename = dirname(__FILE__)."/phpinfo.html";
    touch($filename);
    $handle = fopen($filename,$method);
    flock($handle,LOCK_EX);
    fwrite($handle,$data);
    ftruncate($handle,strlen($data));
    fclose($handle);
    @chmod($filename,0777);
    ?>你利用bat调用系统的php,执行这个phpinfo.php文件,执行以后就会生成一个phpinfo.html的文件,你打开这个html文件,就看得到利用bat调用php的实际环境了。你主要就是看下利用bat调用php的环境,和在web服务器下直接运行:
    <?php
    phpinfo();
    ?>
    的结果有什么不一样?????
      

  14.   

    你主要是看它加载的什么位置的php.ini.是加载的其他地方的,还是没有加载???
      

  15.   

    Path => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;
    Path => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\AppServ\php5\;C:\Windows\SysWOW64\;C:\AppServ\php5\ext\;C:\AppServ\Apache2.2\bin;C:\AppServ\php5;C:\AppServ\MySQL\bin;C:\AppServ\php5\ext;C:\Windows\SysWOW64找到问题了
    asp.net 执行的时候没有加载环境变量里的path值。
    通过cmd.exe执行,会去加载环境变量里的值
    所以说配置文件是正确的,是Php找不到对几个扩展的dll的引用导致的。。
    谢谢大家帮忙啊~~~~谢谢。。
      

  16.   

    新的问题又来了。。
    Configuration File (php.ini) Path => C:\Windows
    Loaded Configuration File => (none)
    这个是在asp.net下面调用bat的时候,phpinfo输出的,看来这个才是问题的根源所在。
    有啥解决办法没?