如下代码:phpinfo();echo '开始连接<br/>';
$link = @mysql_connect("localhost", "root", "123");
if($link)
echo "连接成功:$link<br/>";
else 
echo "连接失败<br/>";
mysql_close($link);
echo "结束<br/>";
结果如下:
phpinfo()的信息,略
开始连接
连接成功:Resource id #2
结束
但是要是不加上phpinfo()的话,则直接打不开页面,显示页面无法打开
看了下,似乎问题是出在mysql_connect,但是,为什么加上phpinfo()后能连接成功呢?想不通

解决方案 »

  1.   

    加了phpinfo()服务器认得这是php文件, 不加就认不出, 假如你的脚本代码和你粘的一样.
      

  2.   

    谢谢,我完整代码和上面一样的<?php
    phpinfo();echo '开始连接<br/>';
    $link = @mysql_connect("localhost", "root", "123");//去掉数据库方面的话,echo并没有问题,即使没有phpinfo
    if($link)
    echo "连接成功:$link<br/>";
    else 
    echo "连接失败<br/>";
    mysql_close($link);
    echo "结束<br/>";
    ?>
      

  3.   

    答案:  phpinfo只是输出字符串, 和一个普通的echo输出没区别你把mysql_connect前的那个@去掉,  因为这个隐藏了错误, 可能不正确连接, 导致脚本运行出错, 而服务器默认出错页面配置是指向了 "无法找到页面"
      

  4.   

    这个离奇错误之迷, 一切都因 @ 而起 ...
    Is that right ?
      

  5.   


    <?php
    echo '开始连接<br/>';//单步调试时,这句正常通过
    $link = mysql_connect("localhost", "root", "123");//这句直接就过了,页面显示“不能显示页面”,单步也进行不下去了
    if($link)
    echo "连接成功:$link<br/>";
    else 
    echo "连接失败<br/>";
    mysql_close($link);
    echo "结束<br/>";
    ?>
      

  6.   

    link = mysql_connect("localhost", "root", "123") or die(mysql_error());
      

  7.   

    本来是有or die,后来发现这个问题才删除掉的,有没有都一样
    或许我的PHP环境有点问题吧,我再重装试试
      

  8.   

    楼主直接在页面中 echo 呢,其余的全去掉
      

  9.   


    直接echo是没问题的,我现在把代码简化到这样phpinfo();//加上这个下面的就能连接,一切正常,不加上则“页面无法显示”
    $link = mysql_connect("localhost", "root", "123") or die(mysql_error());
    echo "ok"
    原因有可能是什么呢?配置我都看了一下,似乎是没发现什么问题
      

  10.   

    查看了一下apache下面的LOG,没发现什么异常
    以前弄JAVA的时候有很清晰的异常链,PHP中有吗?单步我也看不到错哪里了,LOG我也找不到
    [Thu Sep 16 10:17:15 2010] [notice] Parent: child process exited with status 255 -- Restarting.
    httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.2.101 for ServerName
    [Thu Sep 16 10:17:15 2010] [notice] Apache/2.2.16 (Win32) PHP/5.2.14 configured -- resuming normal operations
    [Thu Sep 16 10:17:15 2010] [notice] Server built: Jul 30 2010 16:15:37
    [Thu Sep 16 10:17:15 2010] [notice] Parent: Created child process 2116
    httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.2.101 for ServerName
    httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.2.101 for ServerName
    [Thu Sep 16 10:17:15 2010] [notice] Child 2116: Child process is running
    [Thu Sep 16 10:17:15 2010] [notice] Child 2116: Acquired the start mutex.
    [Thu Sep 16 10:17:15 2010] [notice] Child 2116: Starting 64 worker threads.
    [Thu Sep 16 10:17:15 2010] [notice] Child 2116: Starting thread to listen on port 80.
    [Thu Sep 16 10:17:18 2010] [notice] Parent: child process exited with status 255 -- Restarting.
    httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.2.101 for ServerName
    [Thu Sep 16 10:17:18 2010] [notice] Apache/2.2.16 (Win32) PHP/5.2.14 configured -- resuming normal operations
    [Thu Sep 16 10:17:18 2010] [notice] Server built: Jul 30 2010 16:15:37
    [Thu Sep 16 10:17:18 2010] [notice] Parent: Created child process 3604
    httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.2.101 for ServerName
    httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.2.101 for ServerName
    [Thu Sep 16 10:17:19 2010] [notice] Child 3604: Child process is running
    [Thu Sep 16 10:17:19 2010] [notice] Child 3604: Acquired the start mutex.
    [Thu Sep 16 10:17:19 2010] [notice] Child 3604: Starting 64 worker threads.
    [Thu Sep 16 10:17:19 2010] [notice] Child 3604: Starting thread to listen on port 80.
      

  11.   

    对了,我的环境,Windows7 + apache 2.2 + php 5.2.14 + mysql 5.1
    mysql连接正常,我用SQLYOG连接没问题
      

  12.   

    代码本书加不加phpinfo都是没错的,应该是和你环境有关xp+apache 2+mysql 5+php 5.2.13
      

  13.   

    那你看一下你的phpinfo()里面的mysql模块的加载的情况
      

  14.   

    跟phpinfo应该毫无关系。
    apache的日志文件看错了。
    apache日志,只能看访问的文件,要看脚本错误,应该去php.ini里设置log_file,查看PHP的错误日志。